Każdy w połowie przyzwoity RDBMS robi to w ten sam sposób, ponieważ jest poprawny .
Cytuję tutaj podręcznik Postgresa:
Zwykłe operatory porównania dają wartość null (oznaczającą „nieznane”), nottrue lub false, gdy którekolwiek dane wejściowe mają wartość null. Na przykład 7 = NULL
yieldsnull, podobnie jak 7 <> NULL
. Jeśli to zachowanie nie jest odpowiednie, użyj IS [ NOT ] DISTINCT FROM
konstrukcje:
expression IS DISTINCT FROM expression
expression IS NOT DISTINCT FROM expression
Zauważ, że te wyrażenia działają nieco wolniej niż proste expression <> expression
porównanie.
Dla boolean
wartości istnieje również prostszy IS NOT [TRUE | FALSE]
.
Aby uzyskać to, czego oczekiwałeś w drugim zapytaniu, napisz:
SELECT * FROM table WHERE avalue IS NOT TRUE;
Skrzypce SQL.