oracle 列装行
时间: 2023-10-12 11:04:53 浏览: 92
Oracle中行转列是指将一行数据转换为多列的操作,可以使用Oracle的PIVOT函数来实现。
以下是一个示例,假设我们有一个名为employees的表,其中包含员工的姓名和所属部门:
```
CREATE TABLE employees (
name VARCHAR2(50),
department VARCHAR2(50)
);
INSERT INTO employees (name, department) VALUES ('John', 'Sales');
INSERT INTO employees (name, department) VALUES ('Jane', 'Marketing');
INSERT INTO employees (name, department) VALUES ('Mike', 'Sales');
INSERT INTO employees (name, department) VALUES ('Emily', 'Human Resources');
```
现在我们想要将这些数据按部门进行行转列,可以使用PIVOT函数来实现:
```
SELECT *
FROM (
SELECT name, department
FROM employees
)
PIVOT (
COUNT(name) FOR department IN ('Sales', 'Marketing', 'Human Resources')
);
```
上述查询将会返回一个结果集,其中每个部门对应一列,列中显示该部门下的员工数量。
注意:在使用PIVOT函数之前,需要确保数据库版本为Oracle 11g或更高版本。
阅读全文