1.1 Lista funkcji warunkowych
Język SQL ma listę funkcji, które są nieco podobne do operatora if-else
w switch
Javie.
W sumie są 4 takie funkcje:
Funkcje | Opis | |
---|---|---|
1 | SPRAWA | przełącznik analogowy |
2 | JEŚLI() | Analogia operatora trójskładnikowego lub if-else |
3 | JEŻELI NULL() | odpowiednik if-else |
4 | NULLIF() | odpowiednik if-else |
Ostatnie trzy w SQL są reprezentowane jako funkcje i CASE
są pełnoprawnymi operatorami, więc rozważymy je osobno na samym końcu.
1.2 Funkcja JEŻELI().
Funkcja IF()
w języku SQL jest nieco podobna do operatora trójskładnikowego w Javie. W języku SQL przyjmuje 3 parametry i wygląda tak:
IF (condition, true, false)
Do funkcji należy przekazać trzy wyrażenia IF
:
- warunek, który jest sprawdzany pod kątem prawdziwości;
- wyrażenie zwracane, gdy warunek jest prawdziwy;
- wyrażenie zwracane, gdy warunek jest fałszywy.
Poniżej podam kilka przykładów, aby łatwiej było zrozumieć, jak to działa:
Wniosek | Wynik | |
---|---|---|
1 | WYBIERZ JEŚLI( 1>2 , 2, 3) | 3 |
2 | WYBIERZ JEŻELI( 1<2 , 'tak', 'nie') | 'Tak' |
3 | WYBIERZ JEŻELI( STRCMP('test','test1' ), 'nie', 'tak') | 'NIE' |
1.3 Funkcja JEŻELI NULL() i NULLIF()
Istnieją również dwie modyfikacje funkcji IF()
.
Pierwszą modyfikacją jest funkcja IFNULL()
. Przyjmuje tylko dwie wartości:
IFNULL (expression 1, expression 2)
Jeśli wyrażenie1 nie jest równe NULL
, funkcja zwróci wyrażenie1 . Jeśli wyrażenie1 IS NULL,
to funkcja zwróci wyrażenie2 . Istotą jest zastąpienie wartości domyślnej, gdy pole jest równe NULL
.
Drugą modyfikacją funkcji IF
jest funkcja NULLIF()
, która również przyjmuje dwie wartości:
NULLIF (expression 1, expression 2)
Działa to w przeciwnym kierunku:
- jeśli wyrażenie1 jest równe wyrażeniu2 , funkcja zwraca
NULL
; - jeśli wyrażenia nie są równe, zwracane jest wyrażenie1 .