SQLServer 行转列

SQLServer 行转列,第1张

概述参考例子 http://sqlfiddle.com/#!6/a63a6/457   SELECT LogicalStationID,[气体浓度_DLastValue],[传感器状态_DLastValue],   [水位状态_DLastValue],[电池状态_DLastValue],   case when [气体浓度_DLastTime]>=[传感器状态_DLastTime] and [气体浓度

参考例子

http://sqlfiddle.com/#!6/a63a6/457




  SELECT LogicalStationID,[气体浓度_DLastValue],[传感器状态_DLastValue],  [水位状态_DLastValue],[电池状态_DLastValue],  case when [气体浓度_DLastTime]>=[传感器状态_DLastTime] and [气体浓度_DLastTime]>=[水位状态_DLastTime]    and [气体浓度_DLastTime]>=[电池状态_DLastTime] Then  convert(datetime,[气体浓度_DLastTime])    when [传感器状态_DLastTime]>=[气体浓度_DLastTime] and [传感器状态_DLastTime]>=[水位状态_DLastTime]    and [传感器状态_DLastTime]>=[电池状态_DLastTime] Then  convert(datetime,[传感器状态_DLastTime])    when [水位状态_DLastTime]>=[气体浓度_DLastTime] and [水位状态_DLastTime]>=[传感器状态_DLastTime]    and  [水位状态_DLastTime]>=[气体浓度_DLastTime] Then  convert(datetime,[水位状态_DLastTime])     when [电池状态_DLastTime]>=[传感器状态_DLastTime] and [电池状态_DLastTime]>=[气体浓度_DLastTime]    and [电池状态_DLastTime]>=[水位状态_DLastTime]  Then  convert(datetime,[电池状态_DLastTime]) end as [DLastTime]    FROM ( SELECT LogicalStationID,col,val FROM(  SELECT *,name+'_DLastValue' as Col,DLastValue as Val FROM [zhouweiTest].[dbo].[SensorReal]  UNION  SELECT *,name+'_DLastTime' as Col,CONVERT(float,DLastTime) as Val  FROM [zhouweiTest].[dbo].[SensorReal] ) t ) tt PIVOT ( max(Val) for Col in ([气体浓度_DLastValue],[气体浓度_DLastTime],[传感器状态_DLastTime],[水位状态_DLastValue],[水位状态_DLastTime],[电池状态_DLastTime]) ) AS pvt

总结

以上是内存溢出为你收集整理的SQLServer 行转列全部内容,希望文章能够帮你解决SQLServer 行转列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1170325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存