SQLLab
Глоссарий/NULL / IS NULL
ОсновыНачальный

NULL / IS NULL

NULL означает отсутствие значения. Для проверки используется IS NULL, а не = NULL.

Синтаксис
WHERE col IS NULL
WHERE col IS NOT NULL
COALESCE(col, default_value)

Объяснение

NULL — не пустая строка и не 0. NULL = «неизвестно». Любое сравнение с NULL через = или != возвращает NULL (не TRUE и не FALSE): - NULL = NULL → NULL - NULL != NULL → NULL Правильная проверка: IS NULL / IS NOT NULL. NULL в арифметике: 5 + NULL = NULL. В агрегатах: SUM, AVG, MIN, MAX игнорируют NULL.

Пример

-- Неправильно (всегда 0 строк):
SELECT * FROM users WHERE deleted_at = NULL;

-- Правильно:
SELECT * FROM users WHERE deleted_at IS NULL;   -- не удалённые
SELECT * FROM users WHERE deleted_at IS NOT NULL; -- удалённые