ОсновыНачальный
COALESCE / NULLIF
COALESCE возвращает первый не-NULL аргумент. NULLIF возвращает NULL если два аргумента равны.
Синтаксис
COALESCE(value, default) NULLIF(value, unwanted_value)
Объяснение
COALESCE(a, b, c) — вернёт первое не-NULL значение. Удобно для подстановки значений по умолчанию.
NULLIF(a, b) — вернёт NULL если a=b, иначе a. Классический трюк: NULLIF(count, 0) для избежания деления на ноль: value / NULLIF(count, 0).
Пример
-- Подстановка значений по умолчанию SELECT COALESCE(nickname, first_name, 'Аноним') AS display_name, COALESCE(phone, email) AS contact FROM users; -- Избежать деления на ноль SELECT total / NULLIF(count, 0) AS avg_per_item FROM stats;
Связанные термины
Анекдоты по теме
Начинающий: — Я выучил SQL за неделю! Опытный: — Поздравляю. Ты выучил SELECT, INSERT, UPDATE, DELETE. Осталось лет 5 на JOIN, индексы, транзакции и почему NULL — это зло. Удачи.
— Почему программист расстался с базой данных? — Она всегда отвечала NULL на вопрос «ты меня любишь?».
Аналитик пишет SUM(revenue) и получает NULL. Он в панике звонит DBA. DBA: проверь, есть ли NULL в колонке revenue. Аналитик: есть несколько. DBA: один NULL заражает всю сумму. Используй SUM(COALESCE(revenue, 0)).