为了账号安全,请及时绑定邮箱和手机立即绑定

SQL Server 行列转换

标签:
SQL Server

报表显示需求,查询结果往往需要做一些行列转换或列行转换来显示。

就以http://www.cnblogs.com/insus/articles/1968148.html这个例子的数据源做演示。

正常查询结果显示和执行结果,如下:

SELECT [RId],[DT],[Hits] FROM [dbo].[RecordHits]

 

 

下面演示,把[RId]和[DT]作为列显示:

View Code SELECT [RID],
SUM(CASE WHEN [DT] = '2011-01-23' THEN [Hits] END) AS '2011-01-23',
SUM(CASE WHEN [DT] = '2011-01-24' THEN [Hits] END) AS '2011-01-24',
SUM(CASE WHEN [DT] = '2011-01-25' THEN [Hits] END) AS '2011-01-25',
SUM(CASE WHEN [DT] = '2011-01-26' THEN [Hits] END) AS '2011-01-26'
FROM [dbo].[RecordHits] 
GROUP BY [RId]

 

执行结果:

 

下面把DT,记录[RId]作为列显示:

View Code SELECT [DT],
SUM(CASE WHEN [RId] = 'R1' THEN [Hits] END) AS 'R1',
SUM(CASE WHEN [RId] = 'R2' THEN [Hits] END) AS 'R2',
SUM(CASE WHEN [RId] = 'R3' THEN [Hits] END) AS 'R3',
SUM(CASE WHEN [RId] = 'R4' THEN [Hits] END) AS 'R4'
FROM [dbo].[RecordHits] 
GROUP BY [DT]

 

执行显示结果:

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消