Note: != 演算子は構文解析で <> に変換されます。!= 演算子と <> 演算子に異なる処理を行わせる実装はできません。
比較演算子はその意味が通るならばすべてのデータ型で使用できます。すべての比較演算子は二項演算子で、boolean データ型を返します。 1 < 2 < 3 は(ブール値と 3 を比較する < 演算子がないので)無効です。
a BETWEEN x AND y
は次と同等です。
a >= x AND a <= y
同様にして、
a NOT BETWEEN x AND y
は次と同等です。
a < x OR a > y
内部的に最初のの形式を 2 番目の形式に書き換えるのに必要となる CPU サイクル以外それぞれの形式には違いはありません。
値が NULL か NULL でないかを検証するには次の構文を使います。
式 IS NULL 式 IS NOT NULL
あるいは同等ですがより標準から外れた構文も使えます。
式 ISNULL 式 NOTNULL
NULL は "等しい" NULL とは異なるので 式 = NULL と記述しては いけません。(NULL は不明の値を表現していますので、不明どうしの値が同じかどうかは識別できません。)
アプリケーションによっては(間違っているのですが) 式 = NULL が 式 が NULL 値を評価するのであれば真 (true) を返すことを要求することがあります。このようなアプリケーションをサポートするため、実行時オプション transform_null_equals を有効にできます(例えば、 SET transform_null_equals TO ON; と指定します)。そうすると PostgreSQL は x = NULL 句を x IS NULL に変換します。これはリリース 6.5 から 7.1 まではデフォルトでした。
ブール値も次の構文で検証できます。
式 IS TRUE 式 IS NOT TRUE 式 IS FALSE 式 IS NOT FALSE 式 IS UNKNOWN 式 IS NOT UNKNOWN
演算項目が NULL であったとしても、その中で常時 TRUE (真) 又は FALSE (偽)を返す IS NULL に類似したものがあります。