Funkcje sterowania przepływem

Funkcje te znajdują swoje zastosowanie szczególnie w pojedynczych zapytaniach, gdzie nie możemy utworzyć procedur. Na tą grupę składają się cztery konstrukcje – IF(), IFNULL(), NULLIF() oraz CASE.

Konstrukcja IF przyjmuje trzy parametry wejściowe. Przykład jej wykorzystania to:

SELECT IF(id < 0, 0, id) AS id, name FROM tabela

Działanie tego zapytania przedstawia się następująco - jeśli id będzie ujemne zamiast niego zostanie zwrócone 0, natomiast jeśli id będzie większe lub równe 0 to zostanie zwrócone ono samo. I tak dla tabeli postaci:

id name
2 AAAAAAAA
-2 BBBBBBBB
-3 CCCCCCCC
4 DDDDDDDD
6 EEEEEEEE

Otrzymamy tabelę postaci:

id name
2 AAAAAAAA
0 BBBBBBBB
0 CCCCCCCC
4 DDDDDDDD
6 EEEEEEEE

Konstrukcja IFNULL() przyjmuje dwa argumenty wejściowe. Przykład wykorzystania:

SELECT IFNULL (id, 0) AS id FROM tabela

Zatem jeśli id będzie równe NULL zostanie zwrócone 0, a jeśli nie będzie równe NULL zostanie zwrócone id. Dla tabeli postaci:

id name
NULL AAAAAAAA
2 BBBBBBBB
-3 CCCCCCCC
NULL DDDDDDDD
6 EEEEEEEE

otrzymamy:

id name
0 AAAAAAAA
2 BBBBBBBB
-3 CCCCCCCC
0 DDDDDDDD
6 EEEEEEEE

Konstrukcja NULLIF przyjmuje dwa parametry wejściowe. Przykładowo:

SELECT id, nr, NULLIF(id, nr) AS wynik FROM tabela

Konstrukcja ta zwróci NULL jeśli id i number będą równe, natomiast jeśli nie będą równe zwróci id. Przykładowo dla tablicy:

id nr
2 3
2 5
-3 -3
2 4
6 6

Otrzymamy:

id nr wynik
2 3 2
2 5 2
-3 -3 NULL
2 4 2
6 6 NULL