Всеки наполовина приличната RDBMS го прави по същия начин, защото еправилно .
Цитирам ръководството на Postgres тук:
Обикновените оператори за сравнение дават null (означаващи "неизвестно"), nottrue или false, когато всеки от входните данни е нулев. Например,
7 = NULL
yieldsnull, както и7 <> NULL
. Когато това поведение не е подходящо, използвайтеIS [ NOT ] DISTINCT FROM
конструкции:expression IS DISTINCT FROM expression expression IS NOT DISTINCT FROM expression
Обърнете внимание, че тези изрази се изпълняват малко по-бавно от простия expression <> expression
сравнение.
За boolean
стойности има и по-простият IS NOT [TRUE | FALSE]
.
За да получите това, което очаквате във втората си заявка, напишете:
SELECT * FROM table WHERE avalue IS NOT TRUE;
SQL Fiddle.