sqlserver 列转行
时间: 2023-09-07 11:17:26 浏览: 97
sql 列转行
在 SQL Server 中,可以使用 UNPIVOT 操作符将列转换为行。以下是一个示例:
假设有以下表:
```
CREATE TABLE TestTable
(
ID INT PRIMARY KEY,
Col1 INT,
Col2 INT,
Col3 INT
);
INSERT INTO TestTable (ID, Col1, Col2, Col3)
VALUES (1, 10, 20, 30),
(2, 40, 50, 60);
```
要将列 Col1、Col2 和 Col3 转换为行,可以使用以下查询:
```
SELECT ID, ColName, ColValue
FROM TestTable
UNPIVOT
(
ColValue FOR ColName IN (Col1, Col2, Col3)
) AS unpvt;
```
输出结果如下:
```
ID ColName ColValue
-- ------- --------
1 Col1 10
1 Col2 20
1 Col3 30
2 Col1 40
2 Col2 50
2 Col3 60
```
在 UNPIVOT 操作符中,ColValue 是要转换为行的列,而 ColName 是新生成的列,其中包含原始列的名称。可以在 IN 子句中指定要转换为行的列。
阅读全文