OracleでCASE WHENを使って子クエリを使う方法は何ですか?

Oracleでは、CASE WHEN文内で論理判定するためにサブクエリを使用することができます。以下は例です:

SELECT employee_id, last_name, salary,
  CASE
    WHEN salary > (SELECT AVG(salary) FROM employees) THEN '高薪'
    WHEN salary < (SELECT AVG(salary) FROM employees) THEN '低薪'
    ELSE '平均薪'
  END AS salary_status
FROM employees;

上記の例では、サブクエリを使用して従業員の給与の平均値を取得し、CASE WHENステートメントで比較を行いました。従業員の給与が平均給与より高い場合は「高給」を返し、平均給与より低い場合は「低給」を、それ以外の場合は「平均給」を返します。

子クエリを使用する際には、子クエリが単一の値を返すことを確認して、比較演算子と比較できるようにしてください。

bannerAds