日本語PDF

論理条件

論理条件は、構成要素である2つの条件の結果を結合して、それらに基づく単一の結果を生成するか、または単一条件の結果を逆転します。表6-4に、論理条件を示します。

表6-4 論理条件

条件の種類 操作
NOT 

以降の条件がFALSEの場合はTRUEを返します。条件がTRUEの場合はFALSEを返します。条件がUNKNOWNの場合はUNKNOWNのままです。

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 

両方のコンポーネント条件がTRUEの場合はTRUEを返します。一方がFALSEの場合はFALSEを返します。それ以外の場合はUNKNOWNを戻します。

SELECT *
  FROM employees
  WHERE job_id = 'PU_CLERK'
  AND department_id = 30
  ORDER BY employee_id;
OR 

一方のコンポーネント条件がTRUEの場合はTRUEを返します。両方がFALSEの場合はFALSEを返します。それ以外の場合はUNKNOWNを戻します。

SELECT *
  FROM employees
  WHERE job_id = 'PU_CLERK'
  OR department_id = 10
  ORDER BY employee_id;

表6-5に、式にNOT条件を適用した結果を示します。

表6-5 NOT真理値表

-- TRUE FALSE UNKNOWN

NOT

FALSE

TRUE

UNKNOWN

表6-6に、2つの式にAND条件を組み合せた結果を示します。

表6-6 AND真理値表

AND TRUE FALSE UNKNOWN

TRUE

TRUE

FALSE

UNKNOWN

FALSE

FALSE

FALSE

FALSE

UNKNOWN

UNKNOWN

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;

表6-7に、2つの式にORを適用した結果を示します。

表6-7 OR真理値表

OR TRUE FALSE UNKNOWN

TRUE

TRUE

TRUE

TRUE

FALSE

TRUE

FALSE

UNKNOWN

UNKNOWN

TRUE

UNKNOWN

UNKNOWN

たとえば、次の問合せは、歩合率が40%または給与が$20,000を超える従業員を戻します。

SELECT employee_id FROM employees
   WHERE commission_pct = .4 OR salary > 20000
   ORDER BY employee_id;