オラクルでどのように行を列に変換するか
OracleではPIVOTキーワードを使って行を転置することができます。PIVOTは1列の値を複数の列に変換し、行データを新しい列に再配置します。
以下に例を示します。
employeeという名前のテーブルがあり、それに以下のデータが含まれると仮定する:
社員番号部署番号役職
各部署の社員職位を列に置換するには、PIVOTキーワードを使います
SELECT *
FROM
(
SELECT employee_id, department_id, job_title
FROM employee
)
PIVOT
(
MAX(job_title)
FOR department_id IN (101, 102, 103)
);
上記のクエリ文を実行すると、下記のような結果が得られます。
社員ID
PIVOT句では、新しい列の部署ID値(101、102、103)を指定します。また、集計関数としてMAX関数を使用し、各部署の職位値を新しい列に充填します。