Всеки наполовина приличната RDBMS го прави по същия начин, защото еправилно .
Цитирам ръководството на Postgres тук:
Обикновените оператори за сравнение дават null (означаващи "неизвестно"), nottrue или false, когато всеки от входните данни е нулев. Например,
7 = NULLyieldsnull, както и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.