В таблице users столбец is_test может быть 0, 1 или NULL. Нужно исключить тестовых пользователей (где is_test = 1), но оставить остальных, включая NULL. Какой фильтр корректен?

AWHERE is_test <> 1
BWHERE is_test = 0
CWHERE is_test <> 1 OR is_test IS NULL
DWHERE is_test != NULL
Правильный ответ. Условие <> исключает строки с NULL, если не добавить явную проверку.

Разбор

WHERE is_test <> 1 не пропустит строки с is_test = NULL, потому что сравнение даст UNKNOWN. Если по смыслу NULL означает «неизвестно/не отмечен» и таких пользователей нужно оставить, добавляют OR is_test IS NULL. Вариант WHERE is_test = 0 тоже исключит NULL, что меняет смысл выборки.

Проверь себя · 1/3разбор после ответа
Нужно посчитать выручку по заказу как price * quantity, где quantity может быть NULL (не заполнили). По бизнес-правилу NULL нужно считать как 1. Какое выражение корректнее?
Тренировать SQL в Telegram

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