【SRAOSSの各種PostgreSQL関連サービスはこちら】
お間違いでは? これは大変古いバージョンのマニュアルです。
より新しいバージョンのものはこちら [PostgreSQL日本語マニュアル]

1.4. 語彙の優先順位

演算子の優先順位と結合性はパーサに組み込まれています。 ほとんどの演算子は同じ優先順位を持ち左結合します。これは非直感的な 動作に導く可能性があります。例えばブーリアン演算子 "<" と ">" は、ブーリアン演算子 "<=" と ">=" とは違った優先順位を持ちます。さらに、二項と単項演算子を 組み合わせて使う場合は括弧を加える必要がある場合があります。 例えば下記のような場合です。

SELECT 5 ! - 6;
これは下記のように解析されます。
SELECT 5 ! (- 6);
なぜならば、パーサは!が中置ではなく接尾演算子として 定義されていることに最後まで気がつかないためです。 この場合、求める結果を得る為には下記のように書く必要があります。
SELECT (5 !) - 6;
これが拡張性に支払われる代償です。

Table 1-1. 演算子の優先順位 (減少)

演算子/要素結合性説明
::Postgres方式の型キャスト
[ ]配列要素選択
.テーブル/カラム名の区切り
-単項減算
^羃乗
* / %積算、割算、モジュロ
+ -加算、減算
IS TRUE, FALSE, NULL かどうかを試す
ISNULL NULL かどうかを試す
NOTNULL NOT NULL かどうかを試す
(その他すべて)その他全ての組み込み、あるいはユーザ定義の 演算子
IN メンバーシップを設定する
BETWEEN 囲み
OVERLAPS 時間間隔の重複
LIKE ILIKE 文字列パターンのマッチング
< > 小なり、大なり
=等しい、代入
NOT論理否定
AND論理積
OR論理和

演算子優先順位のルールは、上記で触れた組み込み演算子と同じ 名前を持つユーザ定義演算子にも当てはまります。例えばもし "+"演算子をあるカスタムデータ型に定義すると、 新しい演算子が何をするかに関わらず、 組み込まれた"+"演算子と同じ優先順位を持つように なります。


【PostgreSQL商用版パッケージ製品 PowerGresはこちら】
SRA OSS, Inc.のページに戻る