В PostgreSQL оператор COALESCE используется для возврата первого ненулевого (не NULL) значения из списка аргументов. Если все аргументы равны NULL, результатом будет NULL.
Синтаксис
COALESCE(значение1, значение2, ..., значениеN)
Каждое значение проверяется последовательно слева направо, и возвращается первый элемент, который не является NULL.
Примеры использования
Подстановка значения по умолчанию
Если в таблице есть NULL-значения, COALESCE позволяет заменить их на заданное значение:
SELECT COALESCE(NULL, 'Значение по умолчанию');
Результат:
Значение по умолчанию
Выбор первого ненулевого значения из нескольких колонок
При наличии нескольких колонок с возможными NULL-значениями COALESCE выбирает первую заполненную:
SELECT COALESCE(email, phone, 'Контакт не указан') AS контакт
FROM users;
Использование в агрегатных функциях
В сочетании с агрегатными функциями COALESCE заменяет NULL на 0 или другое значение:
SELECT COALESCE(SUM(price), 0) AS total_price FROM orders;
Применение в UPDATE
При обновлении данных COALESCE задаёт значения по умолчанию:
UPDATE products
SET discount = COALESCE(discount, 0);