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 |