1. Список умовних функцій
У мові SQL є список функцій, які чимось схожі на оператор if-else
та switch
у Java.
Загалом таких функцій 4:
Функції | Опис | |
---|---|---|
1 | CASE | Аналог switch |
2 | IF() | Аналог тернарного оператора або if-else |
3 | IFNULL() | Аналог if-else |
4 | NULLIF() | Аналог if-else |
Три останні в SQL представлені у вигляді функцій, а CASE
— це повноцінний оператор, тому ми розглянемо його окремо наприкінці.
2. Функція IF()
Функція IF()
у SQL чимось нагадує тернарний оператор у Java. У мові SQL вона набуває 3 параметрів і має вигляд:
IF (умова, справжня, хибне)
У функцію IF
потрібно передати три вирази:
- умова, яка перевіряється на істинність;
- вираз, який повертається, коли умова є істинною;
- вираз, який повертається, коли умова хибна.
Нижче я наведу кілька прикладів, щоб було легше зрозуміти, як це працює:
Запит | Результат | |
---|---|---|
1 | SELECT IF(1>2, 2, 3) | 3 |
2 | SELECT IF(1<2, 'yes', 'no') | 'yes' |
3 | SELECT IF(STRCMP('test','test1'), 'no', 'yes') | 'no' |
3. Функція IFNULL() та NULLIF()
Також є дві модифікації функції IF()
.
Перша модифікація — це функція IFNULL()
. Вона приймає лише два значення:
IFNULL (вираз1, вираз2)
Якщо вираз1 не дорівнює NULL
, тоді функція поверне вираз1. Якщо ж вираз1 IS NULL,
то функція поверне вираз2. Суть — встановлення стандартного значення, коли поле дорівнює NULL
.
Друга модифікація функції IF
— це функція NULLIF()
. Вона також приймає два значення:
NULLIF (вираз1, вираз2)
Вона працює у протилежному напрямку:
- якщо вираз1 дорівнює вираз2, то функція повертає
NULL
; - якщо вирази не рівні, то повертає вираз1.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ