В таблице orders поле cancelled_at заполняется только для отменённых заказов, а для активных — NULL. Какой фильтр выберет активные (не отменённые) заказы?

AWHERE cancelled_at IS NULL
BWHERE cancelled_at = NULL
CWHERE cancelled_at <> NULL
DWHERE cancelled_at IS NOT NULL
Правильный ответ. Чтобы отобрать строки с пропуском, используйте IS NULL, а не сравнение через =.

Разбор

Условие cancelled_at IS NULL вернёт TRUE для активных заказов, где дата отмены отсутствует. Сравнения вида cancelled_at = NULL не работают как «равно пропуску» и обычно дают не TRUE, поэтому такие фильтры приводят к неожиданным пустым результатам.

Проверь себя · 1/3разбор после ответа
У пользователя price = 100 и discount = NULL. Что вернёт выражение SELECT price + discount FROM products для этой строки?
Тренировать SQL в Telegram

Ещё вопросы по теме «Основы SQL-запросов»