sql行列转换
时间: 2023-07-24 22:10:57 浏览: 155
SQL行列转换总结
行列转换是指将行数据转换为列数据或将列数据转换为行数据。在 SQL 中,可以使用 PIVOT 和 UNPIVOT 语句来实现行列转换。
PIVOT 语句用于将行数据转换为列数据,它需要指定聚合函数和需要转换的列。例如,下面的语句将 Orders 表中的 CustomerID 列转换为列数据,并计算每个客户的总订单金额。
```
SELECT *
FROM Orders
PIVOT (
SUM(OrderAmount)
FOR CustomerID IN ([1001], [1002], [1003])
) AS P
```
UNPIVOT 语句用于将列数据转换为行数据。例如,下面的语句将上面的 P 表转换为原始的 Orders 表。
```
SELECT OrderID, CustomerID, OrderAmount
FROM (
SELECT *
FROM P
) AS P
UNPIVOT (
OrderAmount FOR CustomerID IN ([1001], [1002], [1003])
) AS U
```
阅读全文