DB2 行转列SQL
时间: 2023-11-23 11:14:51 浏览: 46
DB2是一种关系型数据库管理系统,它支持使用SQL语言执行各种操作。要将行转列,你可以使用DB2的PIVOT函数或者CASE语句来实现。
如果你使用的是DB2 11版本或更高版本,可以使用PIVOT函数。以下是一个示例:
```
SELECT *
FROM (
SELECT ID, COLUMN_NAME, COLUMN_VALUE
FROM YOUR_TABLE
) AS SRC
PIVOT (
MAX(COLUMN_VALUE)
FOR COLUMN_NAME IN ('Column1', 'Column2', 'Column3')
) AS PVT;
```
在上面的示例中,'YOUR_TABLE'是你要从中获取数据的表名。'COLUMN_NAME'和'COLUMN_VALUE'是你要转换的列名。'Column1', 'Column2', 'Column3'是你要将行转换为列的列名列表。
如果你使用的是DB2 10.5版本或更低版本,可以使用CASE语句来实现行转列。以下是一个示例:
```
SELECT ID,
MAX(CASE WHEN COLUMN_NAME = 'Column1' THEN COLUMN_VALUE ELSE NULL END) AS Column1,
MAX(CASE WHEN COLUMN_NAME = 'Column2' THEN COLUMN_VALUE ELSE NULL END) AS Column2,
MAX(CASE WHEN COLUMN_NAME = 'Column3' THEN COLUMN_VALUE ELSE NULL END) AS Column3
FROM YOUR_TABLE
GROUP BY ID;
```
在上面的示例中,'YOUR_TABLE'是你要从中获取数据的表名。'COLUMN_NAME'和'COLUMN_VALUE'是你要转换的列名。'Column1', 'Column2', 'Column3'是你要将行转换为列的列名列表。
请根据你的DB2版本和具体需求选择适合的方法来实现行转列。