在Oracle中,可以使用UNPIVOT操作將多個列轉換為行
SELECT *
FROM your_table
UNPIVOT (
value -- 這是新生成的值列的名稱
FOR column_name -- 這是新生成的列名列的名稱
IN (column1 AS 'Column1', column2 AS 'Column2', column3 AS 'Column3') -- 這里列出你想要轉換為行的列名
);
這里是一個具體的例子。假設我們有一個銷售表(sales_data),包含以下列:product_id, sales_q1, sales_q2, sales_q3。我們想要將每個季度的銷售額(sales_q1、sales_q2和sales_q3)轉換為行。
SELECT product_id, quarter, sales
FROM sales_data
UNPIVOT (
sales
FOR quarter
IN (sales_q1 AS 'Q1', sales_q2 AS 'Q2', sales_q3 AS 'Q3')
);
執行此查詢后,結果集將顯示每個產品在每個季度的銷售額,其中每個季度的銷售額都顯示為一行。