oracle 行列转换例题
时间: 2023-10-17 15:15:14 浏览: 83
假设有以下表格:
| id | name | age | gender |
|----|------|-----|--------|
| 1 | Tom | 20 | M |
| 2 | Lucy | 22 | F |
| 3 | Jack | 21 | M |
现在要将表格中的行转换成列,得到以下结果:
| id | 1 | 2 | 3 |
|------|---|------|------|
| name | Tom | Lucy | Jack |
| age | 20 | 22 | 21 |
| gender | M | F | M |
可以使用 Oracle 中的 PIVOT 函数来实现行列转换。具体操作步骤如下:
1. 使用 SELECT 语句将原表格中的数据查询出来:
```
SELECT * FROM table_name;
```
2. 使用 PIVOT 函数将查询结果进行行列转换:
```
SELECT *
FROM table_name
PIVOT (
MAX(name) AS name,
MAX(age) AS age,
MAX(gender) AS gender
FOR id IN (1, 2, 3)
);
```
在 PIVOT 函数中,MAX(name)、MAX(age) 和 MAX(gender) 分别表示将这些列中的最大值作为新表格中的值,而 FOR id IN (1, 2, 3) 则表示将 id 列中的值 1、2、3 分别作为新表格中的列。
阅读全文