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 = NULL
rendementsnull, tout comme7 <> NULL
. Lorsque ce comportement ne convient pas, utilisez leIS [ NOT ] DISTINCT FROM
constructions :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.