データを列から行に変換する方法
PL/SQL において、PIVOT と UNPIVOT を用いて行の転換操作を行うことができる。
- PIVOT による行の列変換:PIVOT 操作は複数の行のデータを 1 行に変換し、ある列の値を新しい列として使用し、他の列の値を新しい列の値として使用します。構文:
- (SELECT col1, col2, col3 FROM your_table)
PIVOT (
集計関数(col2)
FOR col3
IN (‘value1’ AS alias1, ‘value2’ AS alias2, …)
) - 列をピボットして行に変換するには UNPIVOT を使用します。この操作では、複数の列の値が単一の列に変換され、元の列名は新しい列の値として使用されます。構文は次のとおりです。
- SELECT *
FROM your_table
UNPIVOT (
新列名 FOR 列名 IN (列1, 列2, …)
)
PL/SQL でのピボットには主に 2 種類の手法があります。それぞれの手法を使用するかは、ニーズやデータ構造によって異なります。