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都对应一行数据,每个部门都作为列名出现,并显示了该员工在该部门的薪水。