プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
12cリリース1 (12.1)
B71278-13
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

論理条件

論理条件は、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;