Поскольку NULL
означает UNKNOWN
, и при сравнении значения с UNKNOWN
результат всегда будет ложным.
Посмотрите на это сравнение -
NULL = NULL -- false, since both are unknown, so the truth value of this expression can't be determined.
NULL = 4 -- false
4 = 4 -- true, since both values are known.
Если вы хотите получить записи, содержащие NULL
, вам нужно переписать ваш запрос следующим образом -
where fk <> 4
OR fk is null;
Для получения дополнительной информации см. Википедия .