Oracle 的 UNPIVOT 函數可以將多個列轉換為多行,這樣更容易進行數據分析和處理
CREATE TABLE sales_data (
product_id NUMBER,
product_name VARCHAR2(50),
sales_2020 NUMBER,
sales_2021 NUMBER
);
INSERT INTO sales_data VALUES (1, 'Product A', 1000, 1200);
INSERT INTO sales_data VALUES (2, 'Product B', 800, 900);
INSERT INTO sales_data VALUES (3, 'Product C', 1500, 1600);
COMMIT;
SELECT *
FROM sales_data
UNPIVOT (
sales_value FOR sales_year IN (sales_2020 AS '2020', sales_2021 AS '2021')
);
這將返回以下結果:
PRODUCT_ID PRODUCT_NAME SALES_YEAR SALES_VALUE
---------- ------------ ---------- -----------
1 Product A 2020 1000
1 Product A 2021 1200
2 Product B 2020 800
2 Product B 2021 900
3 Product C 2020 1500
3 Product C 2021 1600
現在,我們已經成功地將多列的銷售數據轉換為多行。接下來,你可以對這些數據進行進一步的查詢、分析或者報告。
注意:在實際應用中,你可能需要根據自己的需求調整表結構、數據和查詢。上面的示例僅用于說明如何使用 UNPIVOT 函數。