[MySQL] 3cia kolumna gdy 2 inne nie sa puste |
[MySQL] 3cia kolumna gdy 2 inne nie sa puste |
24.11.2015, 12:26:36
Post
#1
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 10.12.2003 Skąd: Kraków Ostrzeżenie: (0%) |
Witam,
W bazie danych mam kolumny: A, B, C. Kolumna C zawsze ma ustawiona wartosc, kolumny A i B są opcjonalne. Teraz wartość zwracaną z kolumny C uzależniam od tego czy kolumna A i B maja ustawiona wartosc. Jezeli A i B sa puste to zwracam "-" a jesli obydwie maja wartosc to zwaracam wartosc kolumny C. Pseudokod: if (( A != '') AND (B != '')) THEN C = C ELSE C = '-'; Nie mogę nic wygooglowac, może źle szukam. Ciąglę gdzies trafiam na COALESCE, ale to nie zupelnie nie to o co mi chodzi. -------------------- run Forest run ...
|
|
|
24.11.2015, 12:34:24
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
IF (( A != '') AND (B != ''),C, '-') AS C
Mi się udało wygooglować: http://dev.mysql.com/doc/refman/5.7/en/con...tml#function_if Jeszcze jest kwestia co uważasz za puste. Jesli NULL lub pusty string, to wtedy trzeba zastosować właśnie COALESCE. -------------------- |
|
|
24.11.2015, 12:40:29
Post
#3
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 10.12.2003 Skąd: Kraków Ostrzeżenie: (0%) |
Przez puste uwazam pusty string.
COALESCE jesli dobrze zrozumialem to dziala tak ze zwraca pierwsza wartosc ktora nie jest NULL. Czyli np. COALESCE( '', 'string1', 'string2') zwroci mi string1, co zdecydowanie nie realizuje tego co chce. Tak na IF: IF(A<>'' AND B<>'', C, '-') as C Bedzie ok? Ten post edytował jol.us_ 24.11.2015, 12:44:35 -------------------- run Forest run ...
|
|
|
24.11.2015, 12:44:00
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
W przykładzie, który podałeś zwróci ''.
Jeśli nie interesują Cię wartości nullowe dla A i B, to rozwiązanie masz wyżej. -------------------- |
|
|
24.11.2015, 12:46:14
Post
#5
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 10.12.2003 Skąd: Kraków Ostrzeżenie: (0%) |
Tak masz racje zwroci ''.... MIalem zamiast '' wpisac NULL, wtedy by zwrocil string1
IF zadziałał. Dziękuję, nie wiem jak tego mogłem nie widzieć. Ten post edytował jol.us_ 24.11.2015, 13:27:37 -------------------- run Forest run ...
|
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 23:21 |