検索条件
検索条件 は、ある所定の行またはグループについて、真、偽、または不明の条件を示します。
>>-+-----+--+-predicate----------+------------------------------> '-NOT-' '-(search-condition)-' .----------------------------------------------. V | >----+------------------------------------------+-+------------>< '-+-AND-+--+-----+--+-predicate----------+-' '-OR--' '-NOT-' '-(search-condition)-'
検索条件の結果は、指定した論理演算子 (AND、OR、NOT) を、指定したそれぞれの述部の結果に適用することによって求められます。論理演算子を指定しないと、指定した述部の結果が検索条件の結果となります。
AND および OR の定義を以下の表に示します。表の中の P および Q は、任意の述部を示します。
P | Q | P AND Q | P OR Q |
---|---|---|---|
真 | 真 | 真 | 真 |
真 | 偽 | 偽 | 真 |
真 | 不明 | 不明 | 真 |
偽 | 真 | 偽 | 真 |
偽 | 偽 | 偽 | 偽 |
偽 | 不明 | 偽 | 不明 |
不明 | 真 | 不明 | 真 |
不明 | 偽 | 偽 | 不明 |
不明 | 不明 | 不明 | 不明 |
NOT(真) は偽、NOT(偽) は真、NOT(不明) は不明になります。
括弧内の検索条件が先に評価されます。評価の順序を括弧で指定しなかった場合は、NOT が処理されてから AND が処理され、AND が処理されてから OR が処理されます。同じ優先順位レベルにある演算子が評価されるときの順序は、検索条件が最適化されるため、決まっていません。
例
以下の例では、2 行目の番号が演算子の評価される順序を示しています。
例 1
MAJPROJ = 'MA2100' AND DEPTNO = 'D11' OR DEPTNO = 'B03' OR DEPTNO = 'E11'
↑ ↑ ↑
┌┴┐ ┌──┴─────────┐ ┌──┴─────────┐
│1│ │ 2 または 3 │ │ 2 または 3 │
└─┘ └────────────┘ └────────────┘
例 2
MAJPROJ = 'MA2100' AND (DEPTNO = 'D11' OR DEPTNO = 'B03') OR DEPTNO = 'E11'
↑ ↑ ↑
┌┴┐ ┌┴┐ ┌┴┐
│2│ │1│ │3│
└─┘ └─┘ └─┘