Функция IFNULL
Функция IFNULL используется для подмены значения
NULL на указанное значение. Если первый аргумент
не равен NULL, возвращается его значение, иначе возвращается
второй аргумент.
Синтаксис
SELECT IFNULL(expression, replacement) FROM table_name
Таблицы для примеров
| id | name | age | salary | bonus |
|---|---|---|---|---|
| 1 | Ivan | 25 | 40000 | NULL |
| 2 | Petr | 30 | 45000 | 5000 |
| 3 | Sergey | 28 | 42000 | NULL |
| 4 | Olga | 35 | 55000 | 7000 |
| 5 | Andrey | 40 | 60000 | NULL |
Пример
Давайте используем функцию IFNULL для подмены значения NULL в поле bonus на нулевое значение:
SELECT name, bonus,
IFNULL(bonus, 0) AS bonus_value
FROM employees
ORDER BY id
Результат выполнения кода:
| name | bonus | bonus_value |
|---|---|---|
| Ivan | NULL | 0 |
| Petr | 5000 | 5000 |
| Sergey | NULL | 0 |
| Olga | 7000 | 7000 |
| Andrey | NULL | 0 |
Пример
Давайте используем IFNULL для вычисления итоговой выплаты сотрудника, если бонус отсутствует:
SELECT name,
salary + IFNULL(bonus, 0) AS total_payment
FROM employees
ORDER BY id
Результат выполнения кода:
| name | total_payment |
|---|---|
| Ivan | 40000 |
| Petr | 50000 |
| Sergey | 42000 |
| Olga | 62000 |
| Andrey | 60000 |