NULL в SQL — почему NULL = NULL это UNKNOWN?

Ответ

NULL — отсутствие значения, не ноль. NULL = NULL → UNKNOWN (не true и не false). Для проверки: IS NULL / IS NOT NULL. COALESCE(a, b) — первый не-NULL. Ловушка: WHERE status != 'active' НЕ вернёт строки с NULL-статусом.

Разбор: NULL означает отсутствие значения, поэтому любое сравнение с ним (включая NULL = NULL) даёт UNKNOWN, а не true/false — проверять надо через IS NULL / IS NOT NULL. Ловушка дистракторов: NULL это не пустая строка и не 0, status = NULL никогда не сработает, а WHERE status != 'active' как раз отбросит строки с NULL, поскольку условие для них вычисляется в UNKNOWN.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться