Oracle的UNPIVOT函數用于將行數據轉換為列數據,常用于報表開發中處理交叉表數據。以下是使用UNPIVOT函數進行數據轉換的基本步驟:
下面是一個簡單的示例,演示如何使用Oracle的UNPIVOT函數進行數據轉換:
SELECT *
FROM (
SELECT employee_id, department, salary
FROM employee_salary
)
UNPIVOT(
salary FOR department IN ('Sales', 'Marketing', 'Engineering')
);
在這個示例中,我們有一個名為employee_salary
的表,其中包含employee_id
、department
和salary
列。我們希望將department
列的值轉換為行數據,并將它們與salary
列一起顯示。
通過使用UNPIVOT函數,我們可以將employee_salary
表轉換為以下形式的結果集:
+------------+----------+---------+
| employee_id | Sales | Marketing| Engineering|
+------------+----------+---------+
| 1 | 5000 | 6000 | 7000 |
| 2 | 5500 | 6500 | 7500 |
| 3 | 6000 | 7000 | 8000 |
+------------+----------+---------+
在這個結果集中,每個員工的ID都對應一行數據,每個部門都作為列名出現,并顯示了該員工在該部門的薪水。