При обычной SQL-семантике id = NULL даёт UNKNOWN, а WHERE оставляет только TRUE. Поэтому запрос не вернёт строк, даже когда id действительно содержит NULL.
Как сравнение с NULL влияет на результат SELECT‑запроса
При обычной 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 — отсутствие известного значения, а не специальное число для сравнения через равно.