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.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ