SQL行到列

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

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

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

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

解决方法

您需要查看 PIVOT运算符.
  1. ;With T As
  2. (
  3. SELECT 7 AirQuoteID,'M' Name,49.50 SalesValue UNION ALL
  4. SELECT 7 AirQuoteID,'N',23.10 UNION ALL
  5. SELECT 7 AirQuoteID,'+45',233.20 UNION ALL
  6. SELECT 7 AirQuoteID,'+100','+250',2333.10
  7. )
  8. SELECT AirQuoteID,[M],[N],[+45],[+100],[+250]
  9. FROM T
  10. PIVOT
  11. (
  12. MAX(SalesValue)
  13. FOR Name IN ([M],[+250])
  14. ) AS pvt;

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

猜你在找的MsSQL相关文章