Как сравнение с NULL влияет на результат SELECT‑запроса

При обычной SQL-семантике id = NULL даёт UNKNOWN, а WHERE оставляет только TRUE. Поэтому запрос не вернёт строк, даже когда id действительно содержит NULL.

Короткий ответ

Что ответить на собеседовании

При обычной SQL-семантике id = NULL даёт UNKNOWN, а WHERE оставляет только TRUE. Поэтому запрос не вернёт строк, даже когда id действительно содержит NULL.

Подробный разбор

Ответ с пояснениями

Условие

Предположим, в таблице присутствует столбец id типа integer. Какой результат вернёт следующий запрос?

Select id From имя таблицы WHERE
id = NULL

Ответ

При обычной SQL-семантике id = NULL даёт UNKNOWN, а WHERE оставляет только TRUE. Поэтому запрос не вернёт строк, даже когда id действительно содержит NULL.

Для поиска отсутствующего значения используется WHERE id IS NULL, для непустого — IS NOT NULL. Если в реальном имени таблицы есть пробелы, его нужно заключить в кавычки по правилам СУБД; слова «имя таблицы» здесь считаются обозначением. NULL — отсутствие известного значения, а не специальное число для сравнения через равно.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее