在SQLSERVER中利用PIVOT函数对查询结果进行行转列
有表Production如下
| 工厂 | 生产线 | 车型 | 产量 |
| 工厂1 | 生产线1 | A | 100 |
| 工厂1 | 生产线1 | B | 200 |
| 工厂2 | 生产线1 | A | 300 |
| 工厂2 | 生产线1 | B | 400 |
| 工厂2 | 生产线2 | A | 500 |
| 工厂2 | 生产线2 | B | 600 |
对车型和产量进行行转列SQL文如下
SELECT 工厂,生产线
ISNULL(A, 0) AS A,
ISNULL(B, 0) AS B,
FROM (
SELECT 工厂,生产线,车型,产量
FROM Production
) AS OrignTable
PIVOT (
SUM(产量)
FOR 车型 IN (A, B)
) AS ResultTable;
转置后的查询结果如下
| 工厂 | 生产线 | A | B |
| 工厂1 | 生产线1 | 100 | 200 |
| 工厂2 | 生产线1 | 300 | 400 |
| 工厂2 | 生产线2 | 500 | 600 |
2万+

被折叠的 条评论
为什么被折叠?



