Что вернёт выражение CASE WHEN is_active = 1 THEN 'active' END для строки, где is_active = 0?

A'active'
BNULL
C0
D'inactive'
Правильный ответ. Если в CASE нет ELSE, то при отсутствии подходящего WHEN результат — NULL.

Разбор

В выражении CASE WHEN is_active = 1 THEN 'active' END есть только одна ветка и нет ELSE. Для строки с is_active = 0 условие is_active = 1 ложно, поэтому ни одна ветка не сработает и CASE вернёт NULL. Чтобы получить явное значение, добавляют ELSE 'inactive'.

Проверь себя · 1/3разбор после ответа
Вы хотите заменить NULL в referrer на 'direct'. Что проще и эквивалентно по смыслу?
Тренировать SQL в Telegram

Ещё вопросы по теме «Выражения и NULL»