★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

4.2. 比較演算子

Table 4-1. 比較演算子

演算子説明
< 小なり
> 大なり
<= 以下
>= 以上
= 等しい
<> または != 等しくない

Note: != 演算子は構文解析で <> に変換されます。!= 演算子と <> 演算子に異なる処理を行わせる実装はできません。

比較演算子はその意味が通るならばすべてのデータ型で使用できます。すべての比較演算子は二項演算子で、boolean データ型を返します。 1 < 2 < 3 は(ブール値と 3 を比較する < 演算子がないので)無効です。

比較演算子に加えて特殊な BETWEEN 構文が使えます。

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; と指定します)。そうすると PostgreSQLx = 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 に類似したものがあります。