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 =NULLyieldsnull, 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.