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.