オラクルでどのように行を列に変換するか

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関数を使用し、各部署の職位値を新しい列に充填します。

bannerAds