Varje halvvägs hyfsat RDBMS gör det på samma sätt, eftersom det är rätt .
Jag citerar Postgres-manualen här:
Vanliga jämförelseoperatorer ger noll (betecknar "okänt"), inte sant eller falskt, när någon av indata är noll. Till exempel,
7 =NULL
yieldsnull, liksom7 <> NULL
. När detta beteende inte är lämpligt, användÄR [ INTE ] DISTINCT FROM konstruktioner: expression IS DISTINCT FROM expression expression IS NOT DISTINCT FROM expression
Observera att dessa uttryck fungerar lite långsammare än enkla uttryck <> uttryck
jämförelse.
För boolesk
värden det finns också det enklare IS NOT [TRUE | FALSE]
.
För att få vad du förväntade dig i din andra fråga, skriv:
SELECT * FROM table WHERE avalue IS NOT TRUE;
SQL-fiol.