Функция IFNULL
Функция IFNULL используется для подмены значения
NULL на указанное значение. Если первый аргумент
не равен NULL, возвращается его значение, иначе возвращается
второй аргумент.
Синтаксис
sqlSELECT 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 на нулевое значение:
sqlSELECT 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 для вычисления итоговой выплаты сотрудника, если бонус отсутствует:
sqlSELECT 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 |