1.1 Lista funkcji warunkowych

Język SQL ma listę funkcji, które są nieco podobne do operatora if-elsew switchJavie.

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 CASEsą 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 IFjest 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 .