Tous Un RDBMS à moitié décent le fait de la même manière, car il est correct .
Je cite ici le manuel de Postgres :
Les opérateurs de comparaison ordinaires donnent null (signifiant "inconnu"), nottrue ou false, lorsque l'une des entrées est nulle. Par exemple,
7 = NULLrendementsnull, tout comme7 <> NULL. Lorsque ce comportement ne convient pas, utilisez leIS [ NOT ] DISTINCT FROMconstructions :expression IS DISTINCT FROM expression expression IS NOT DISTINCT FROM expression
Notez que ces expressions s'exécutent un peu plus lentement que la simple expression <> expression comparaison.
Pour boolean valeurs il y a aussi le plus simple IS NOT [TRUE | FALSE] .
Pour obtenir ce que vous attendiez dans votre deuxième requête, écrivez :
SELECT * FROM table WHERE avalue IS NOT TRUE; SQL Fiddle.