Функция NULLIF

Функция NULLIF используется для сравнения двух значений. Если значения равны, функция возвращает NULL, в противном случае возвращается первое значение. Часто применяется для предотвращения деления на ноль и для управления логикой обработки данных.

Синтаксис

sqlSELECT NULLIF(expression_1, expression_2) FROM table_name

Таблицы для примеров

employees
id name salary bonus
1 Ivan 40000 0
2 Petr 45000 5000
3 Sergey 42000 0
4 Olga 55000 7000
5 Andrey 60000 0

Пример

Давайте используем функцию NULLIF для преобразования значения бонуса в NULL, если его значение равно нулю:

sqlSELECT name, bonus,
  NULLIF(bonus, 0) AS bonus_value
FROM employees
ORDER BY id

Результат выполнения кода:

name bonus bonus_value
Ivan 0 NULL
Petr 5000 5000
Sergey 0 NULL
Olga 7000 7000
Andrey 0 NULL

Пример

Давайте используем NULLIF для предотвращения деления на ноль при вычислении отношения зарплаты к бонусу:

sqlSELECT name,
  salary / NULLIF(bonus, 0.0) AS salary_ratio
FROM employees
ORDER BY id

Результат выполнения кода:

name salary_ratio
Ivan NULL
Petr 9
Sergey NULL
Olga 7.8571
Andrey NULL

Смотрите также

  • функцию IFNULL,
    которая заменяет NULL на значение
  • функцию COALESCE,
    которая выбирает первое не-NULL
  • команду WHERE,
    которая отбирает строки по условию
  • выражение CASE,
    которое задаёт ветвление логики