SQL行到列

前端之家收集整理的这篇文章主要介绍了SQL行到列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在MS sql中有以下表结构
AirQuoteID        Name        SalesValue
7                  M          49.50
7                  N          23.10
7                 +45         233.20
7                 +100        233.20
7                 +250        2333.10

我想要一个可以返回的查询

AirQuoteID      M        N        +45        +100    +250
7               49.50    23.10    233.20     233.20   2333.10

什么是最佳解决方案.价值观是动态的

解决方法

您需要查看 PIVOT运算符.
;With T As
(
SELECT 7 AirQuoteID,'M' Name,49.50 SalesValue UNION ALL
SELECT 7 AirQuoteID,'N',23.10 UNION ALL
SELECT 7 AirQuoteID,'+45',233.20 UNION ALL
SELECT 7 AirQuoteID,'+100','+250',2333.10
)
SELECT AirQuoteID,[M],[N],[+45],[+100],[+250] 
FROM T
PIVOT
(
MAX(SalesValue)
FOR Name IN ([M],[+250])
) AS pvt;

但是,如果列的值未修复,则需要使用dynamic SQL.

猜你在找的MsSQL相关文章