Elke half fatsoenlijke RDBMS doet het op dezelfde manier, omdat het correct is .
Ik citeer hier de handleiding van Postgres:
Gewone vergelijkingsoperatoren leveren null op (wat "onbekend" betekent), niet waar of niet waar, wanneer een van beide invoer nul is. Bijvoorbeeld
7 = NULL
opbrengstennull, evenals7 <> NULL
. Als dit gedrag niet geschikt is, gebruik dan deIS [ NOT ] DISTINCT FROM
constructies:expression IS DISTINCT FROM expression expression IS NOT DISTINCT FROM expression
Merk op dat deze expressies iets langzamer werken dan eenvoudige expression <> expression
vergelijking.
Voor boolean
waarden is er ook de eenvoudigere IS NOT [TRUE | FALSE]
.
Om te krijgen wat je verwachtte in je tweede zoekopdracht, schrijf je:
SELECT * FROM table WHERE avalue IS NOT TRUE;
SQL Fiddle.