SQL COALESCE: заменить NULL значением по умолчанию
COALESCE(value, fallback) возвращает первый аргумент, который не равен NULL. Используйте его для подстановки значения в результате запроса, когда поле отсутствует; для постоянного значения столбца задайте DEFAULT при создании таблицы.
Заменить NULL в результате
WITH users(name, city) AS (VALUES ('Ира', NULL), ('Антон', 'Казань'))
SELECT name, COALESCE(city, 'Город не указан') AS city
FROM users
ORDER BY name;Все аргументы COALESCE должны приводиться к совместимому типу.
Избежать деления на ноль через NULLIF
WITH metrics(total, count) AS (VALUES (10, 2), (5, 0))
SELECT total / NULLIF(count, 0) AS average
FROM metrics;NULLIF(a, b) возвращает NULL, когда a = b; иначе возвращает a. Результат второй строки здесь будет NULL, а не ошибка деления на ноль.
Функция | Результат |
|---|---|
| Первый аргумент, не равный |
|
|
| Использует 1 при нуле или NULL в |
Почему условие column = NULL не работает?
Сравнения с NULL дают неизвестное значение. Проверяйте отсутствие через IS NULL, а для вывода используйте COALESCE.