sql server行转列
时间: 2023-09-27 19:11:49 浏览: 132
在 SQL Server 中,将行转换为列可以使用 PIVOT 操作符或使用 CASE 表达式来实现。下面是两种常用的方法:
1. 使用 PIVOT 进行行转列:
```sql
SELECT [列1], [列2], [列3], ...
FROM (
SELECT 列名, 值
FROM 表名
) AS 原表
PIVOT (
聚合函数(值)
FOR 列名 IN ([列1], [列2], [列3], ...)
) AS 转换后的表;
```
请根据实际情况替换 `[列1], [列2], [列3], ...` 和 `表名`。
2. 使用 CASE 表达式进行行转列:
```sql
SELECT
MAX(CASE WHEN 列名 = '列1' THEN 值 END) AS 列1,
MAX(CASE WHEN 列名 = '列2' THEN 值 END) AS 列2,
MAX(CASE WHEN 列名 = '列3' THEN 值 END) AS 列3,
...
FROM 表名
GROUP BY 按需分组的列;
```
请根据实际情况替换 `列1, 列2, 列3, ...`、`列名` 和 `表名`。
这些方法可以根据你的具体需求进行调整和扩展。
阅读全文