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ステートメントで比較を行いました。従業員の給与が平均給与より高い場合は「高給」を返し、平均給与より低い場合は「低給」を、それ以外の場合は「平均給」を返します。
子クエリを使用する際には、子クエリが単一の値を返すことを確認して、比較演算子と比較できるようにしてください。