すべて 中途半端なRDBMSも同じように機能します。これは、正しいからです。 。
ここでPostgresのマニュアルを引用しています:
通常の比較演算子は、いずれかの入力がnullの場合、null( "unknown"を意味する)、nottrueまたはfalseを生成します。たとえば、
7 = NULL
7 <> NULL
と同様に、yieldsnull 。この動作が適切でない場合は、IS [ NOT ] DISTINCT FROM
を使用してください 構成:expression IS DISTINCT FROM expression expression IS NOT DISTINCT FROM expression
これらの式の実行は、単純なexpression <> expression
よりも少し遅いことに注意してください。 比較。
boolean
の場合 値は、より単純なIS NOT [TRUE | FALSE]
。
2番目のクエリで期待したものを取得するには、次のように記述します。
SELECT * FROM table WHERE avalue IS NOT TRUE;
SQLフィドル。