条件には、次の構文で示すとおり、複数の書式があります。
condition::=

Oracle Textがインストールされている場合、CONTAINS、CATSEARCH、MATCHESなど、この製品に含まれる組込み演算子を使用して条件を作成できます。Oracle Text要素の詳細は、『Oracle Textリファレンス』を参照してください。
次の項では、様々な書式の条件を説明します。SQL文にconditionが含まれる場合は、適切な条件構文を使用する必要があります。
条件は、次の文のWHERE句で使用できます。
DELETE
SELECT
UPDATE
また、SELECT文の次の句で使用することもできます。
WHERE
START WITH
CONNECT BY
HAVING
| 注意: NLS_COMPとNLS_SORTの設定を組み合せた値によって、文字をソートおよび比較するルールが決まります。ご使用のデータベースのNLS_COMPにLINGUISTICが設定されている場合、この章のエンティティはすべてNLS_SORTパラメータによって指定されるルールに従って解釈されます。NLS_COMPがLINGUISTICに設定されていない場合、ファンクションはNLS_SORTの設定に関係なく解釈されます。NLS_SORTは、明示的に設定できます。明示的に設定されていない場合は、NLS_LANGUAGEから導出されます。これらの設定の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 | 
条件は、論理データ型であるともいえます。ただし、Oracle Databaseで、正式にこのようなデータ型をサポートしているわけではありません。
次のような単純な条件は、常にTRUEに評価されます。
1 = 1
次のやや複雑な条件は、salaryの値をsalary*commission_pctの値に加算し(NULLは0で置き換える)、その合計が定数25000より大きいかどうかを判断します。
NVL(salary, 0) + NVL(salary + (salary*commission_pct, 0) > 25000)
論理条件を使用すると、複数の条件を単一の条件に結合できます。たとえば、次のようにAND条件を使用して2つの条件を結合できます。
(1 = 1) AND (5 < 7)
有効な条件の例を次に示します。
name = 'SMITH' 
employees.department_id = departments.department_id 
hire_date > '01-JAN-08' 
job_id IN ('SA_MAN', 'SA_REP') 
salary BETWEEN 5000 AND 10000
commission_pct IS NULL AND salary = 2100
優先順位とは、同じ式の中の異なる条件をOracle Databaseが評価する順序を意味します。複数の条件を含む式を評価するとき、Oracleは優先順位の高い条件を評価した後で、優先順位の低い条件を評価します。優先順位の等しい条件は、式の中で左から右に評価されます。ただし、次の例外があります。
ANDを使用して接続された複数の条件については、左から右への評価は保証されません。
ORを使用して接続された複数の条件については、左から右への評価は保証されません。
表6-1に、SQL条件を優先順位の高い方から順に示します。同じ行に示されている条件の優先順位は同じです。表に示すとおり、Oracleは条件の前に演算子を評価します。
表6-1 SQL条件の優先順位
| 条件の種類 | 用途 | 
|---|---|
| SQL演算子は、SQL条件の前に評価されます。 | 「演算子の優先順位」を参照 | 
| 
 | 比較 | 
| 
 | 比較 | 
| 
 | 指数、論理否定 | 
| 
 | 論理積 | 
| 
 | 論理和 |