Базы данных / SQL junior
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.