COALESCE¶
Функция COALESCE возвращает первый из переданных аргументов expression,
который не равен NULL. Функция вернет NULL, только если все ее
аргументы равны NULL. Функции должно быть передано минимум два
аргумента.
Преимущества:
- исключение ошибок и проверок, связанных с обработкой NULL
- оптимизация и упрощение запросов
- возможность создания псевдонимов для NULL(nil) — аргументы должны быть приведены к одному типу данных с помощью функцииCAST
Синтаксис¶
Выражение¶
Диаграмма
Литерал¶
Диаграмма
Примеры¶
Тестовые таблицы
Примеры использования команд включают в себя запросы к тестовым таблицам.
Функция COALESCE возвращает первый непустой результат
sql> SELECT COALESCE(NULL::STRING, 'First', NULL::STRING, 'Second');
+-------+
| col_1 |
+=======+
| First |
+-------+
(1 rows)
Функция COALESCE возвращает единственный непустой результат
sql> SELECT COALESCE(NULL::STRING, NULL::STRING, 'Check!');
+--------+
| col_1  |
+========+
| Check! |
+--------+
(1 rows)
Функция COALESCE возвращает 
NULLsql> SELECT COALESCE(NULL, NULL, NULL, NULL);
+-------+
| col_1 |
+=======+
| nil   |
+-------+
(1 rows)
Внешнее левое соединение — см. Использование JOIN
  
  
                
              sql> SELECT
    items.name,
    COALESCE(items.stock::STRING, 'Not specified') AS "items.stock",
    COALESCE(orders.amount::STRING, 'Not specified') AS "orders.amount"
FROM items
LEFT JOIN orders
ON items.name = orders.item;
+---------+---------------+---------------+
| name    | items.stock   | orders.amount |
+=========================================+
| bricks  | 1123          | Not specified |
|---------+---------------+---------------|
| panels  | 998           | Not specified |
|---------+---------------+---------------|
| piles   | 177           | Not specified |
|---------+---------------+---------------|
| bars    | 90211         | 100           |
|---------+---------------+---------------|
| blocks  | 16            | 20000         |
+---------+---------------+---------------+
(5 rows)