論理条件は、2つのコンポーネント条件の結果を組み合せ、それらに基づいて単一の結果を生成したり、単一の条件の結果を反転させます。表7-4に、論理条件を示します。
条件の種類 | 操作 | 例 |
---|---|---|
NOT |
後続する条件が |
SELECT * FROM employees WHERE NOT (job_id IS NULL) ORDER BY employee_id; SELECT * FROM employees WHERE NOT (salary BETWEEN 1000 AND 2000) ORDER BY employee_id; |
AND |
コンポーネントの条件が両方とも |
SELECT * FROM employees WHERE job_id = 'PU_CLERK' AND department_id = 30 ORDER BY employee_id; |
OR |
コンポーネントの条件のどちらかが |
SELECT * FROM employees WHERE job_id = 'PU_CLERK' OR department_id = 10 ORDER BY employee_id; |
表7-5に、式にNOT
条件を適用した結果を示します。
表7-6に、2つの式にAND
条件を組み合せた結果を示します。
表7-6 AND真理値表
AND | TRUE | FALSE | UNKNOWN |
---|---|---|---|
TRUE |
|
|
|
FALSE |
|
|
|
UNKNOWN |
|
|
|
たとえば、次のSELECT
文のWHERE
句は、AND
論理条件を使用して、2004年より前に入社し、給与が$2500を超える従業員のみを戻します。
SELECT * FROM employees WHERE hire_date < TO_DATE('01-JAN-2004', 'DD-MON-YYYY') AND salary > 2500 ORDER BY employee_id;
表7-7に、2つの式にOR
を適用した結果を示します。
表7-7 OR真理値表
OR | TRUE | FALSE | UNKNOWN |
---|---|---|---|
TRUE |
|
|
|
FALSE |
|
|
|
UNKNOWN |
|
|
|
たとえば、次の問合せは、歩合率が40%または給与が$20,000を超える従業員を戻します。
SELECT employee_id FROM employees WHERE commission_pct = .4 OR salary > 20000 ORDER BY employee_id;