Какой из фильтров эквивалентен по смыслу условию «включить только строки, где channel задан (не NULL)»?

AWHERE channel IS NOT NULL
BWHERE channel <> NULL
CWHERE COALESCE(channel, 'unknown') = 'unknown'
DWHERE channel = NULL
Правильный ответ. Проверка «не NULL» делается через IS NOT NULL.

Разбор

Сравнения channel <> NULL и channel = NULL не работают как ожидается, потому что результат будет UNKNOWN. Правильный способ отобрать строки с заполненным значением — WHERE channel IS NOT NULL. COALESCE(channel, 'unknown') = 'unknown' наоборот отбирает строки, где channel равен NULL (или реально равен 'unknown', если такое значение встречается).

Проверь себя · 1/3разбор после ответа
Есть логика сегментации: CASE WHEN age IS NULL THEN 'unknown' WHEN age < 18 THEN 'minor' ELSE 'adult' END. Что вернётся для строки, где age = NULL?
Тренировать SQL в Telegram

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