Функция COALESCE
Функция COALESCE используется для выбора первого
не-NULL значения из списка выражений. Часто применяется
для подстановки значений по умолчанию вместо NULL
в результатах запроса.
Синтаксис
SELECT
COALESCE(column_1, column_2, 'default_value') AS result
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 |
Пример
Давайте используем функцию COALESCE для подстановки нулевого значения, если поле bonus равно NULL:
SELECT name, bonus,
COALESCE(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 |
Пример
Давайте используем COALESCE для выбора первого доступного значения из нескольких полей:
SELECT name,
COALESCE(bonus, salary, 0) AS payment_value
FROM employees
ORDER BY id
Результат выполнения кода:
| name | payment_value |
|---|---|
| Ivan | 40000 |
| Petr | 5000 |
| Sergey | 42000 |
| Olga | 7000 |
| Andrey | 60000 |