Нужно выбрать заказы, где delivery_city не равно 'Moscow', но при этом включить строки, где delivery_city = NULL (город неизвестен). Какой фильтр корректен?

AWHERE delivery_city <> 'Moscow'
BWHERE delivery_city <> 'Moscow' OR delivery_city IS NULL
CWHERE delivery_city = 'Moscow' OR delivery_city IS NULL
DWHERE delivery_city != NULL
Правильный ответ. Чтобы включить NULL, его нужно проверить явно через IS NULL.

Разбор

Выражение delivery_city <> 'Moscow' не вернёт TRUE для строк с delivery_city = NULL (получится UNKNOWN), поэтому такие строки будут исключены. Если по смыслу нужно включить неизвестный город, добавляют явную проверку: delivery_city IS NULL. Итоговый устойчивый фильтр: WHERE delivery_city <> 'Moscow' OR delivery_city IS NULL.

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

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