dlaczego null nie jest równy null false

Czytałem ten artykuł:Uzyskaj null == null w SQL

Konsensus polega na tym, że przy próbie sprawdzenia równości między dwiema (null) dopuszczalnymi kolumnami sql właściwym podejściem jest:

where ((A=B) OR (A IS NULL AND B IS NULL))

Gdy A i B mają wartość NULL, (A = B) nadal zwraca FALSE, ponieważ NULL nie jest równe NULL. Dlatego wymagana jest dodatkowa kontrola.

A co z testowaniem nierówności? Z powyższej dyskusji wynika, że ​​aby przetestować nierówność, musiałbym zrobić coś w stylu:

WHERE ((A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL))

Zauważyłem jednak, że nie jest to konieczne (przynajmniej nie w informix 11.5) i mogę to zrobić:

where (A<>B)

Jeśli A i B są NULL, to zwraca FALSE. Jeśli NULL nie jest równe NULL, to czy nie powinno to zwracać TRUE?

EDYTOWAĆ
To są dobre odpowiedzi, ale myślę, że moje pytanie było trochę niejasne. Pozwól, że przeredaguję:

Biorąc pod uwagę, że A lub B mogą mieć wartość NULL, czy wystarczy sprawdzić ich nierówność

where (A<>B)

Czy też muszę to wyraźnie zaznaczyć:

WHERE ((A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL))

ODKRYJ towątek odpowiedź na to pytanie.

questionAnswers(7)

yourAnswerToTheQuestion