db2行转列详细例子
时间: 2023-08-30 12:05:55 浏览: 82
假设我们有一个名为`table1`的表,包含以下数据:
| id | name | value |
|----|------|-------|
| 1 | A | 10 |
| 1 | B | 20 |
| 2 | A | 30 |
| 2 | B | 40 |
我们希望将`name`列转换为新的列,并将其与`value`列一起显示,结果如下所示:
| id | A_value | B_value |
|----|---------|---------|
| 1 | 10 | 20 |
| 2 | 30 | 40 |
可以使用`PIVOT`函数来实现这一转换。以下是具体步骤:
1. 创建一个包含新列名的查询语句,以及要转换的列和聚合函数的查询语句。
```
SELECT id,
MAX(CASE WHEN name = 'A' THEN value END) AS A_value,
MAX(CASE WHEN name = 'B' THEN value END) AS B_value
FROM table1
GROUP BY id
```
2. 运行上述查询语句,将数据转换为新的列格式。
这个`SELECT`语句使用了`CASE`语句来选择要在新列中显示的值。`MAX`函数用于聚合每个`id`组中的值,以便在结果中只显示一个行。
可以根据需要自定义此查询,例如更改`MAX`函数为`SUM`或`AVG`,或更改`name`列中的值以适应不同的数据集。