db2 里的行转列和列转行
时间: 2024-09-20 16:09:32 浏览: 38
DB2 SQL 实现行转列,列转行
在DB2(数据库2)中,行转列(也称为透视、交叉表或数据重塑)是指将一条记录的数据展平成列的操作,通常是为了分析目的而对表格数据进行汇总。这通常是通过SQL的PIVOT操作来完成的,例如,你可以使用`PIVOT`或`UNPIVOT`关键字将特定字段的内容按需要转换到新的列中。
列转行(也叫行列互换),则相反,它是将数据从列格式转换成行格式的过程,即将单个值变成多行数据。这可以使用GROUPING SETS、CUBE或ROLLUP等SQL聚集函数来实现,如`GROUP BY`配合`WITH ROLLUP`子句。
举个例子:
```sql
-- 行转列示例
SELECT *
FROM table
PIVOT (
SUM(value)
FOR column_name IN ('value1', 'value2')
);
-- 列转行示例
SELECT *
FROM (
SELECT column_name, value
FROM table
) AS unpivoted
GROUP BY GROUPING SETS ((column_name), (value));
```
阅读全文