登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zczhangchi 的博客

学习笔记

 
 
 

日志

 
 

SQl 行转列,列转行 (PIVOT,UPIVOT)  

2010-09-16 11:52:02|  分类: sql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.列转行

表t_pivot

SQl 行转列,列转行 (PIVOT,UPIVOT) - zc - zczhangchi 的博客

 

转后效果

SQl 行转列,列转行 (PIVOT,UPIVOT) - zc - zczhangchi 的博客
 
方法 1 (常用方法 case when)

SELECT     buydate,

                  SUM(CASE WHEN type = '生活' THEN typecount ELSE 0 END) AS 生活,

                  SUM(CASE WHEN type = '学习' THEN typecount ELSE 0 END) AS 学习,
                  SUM(CASE WHEN type = '动画' THEN typecount ELSE 0 END) AS 动画,

                  SUM(CASE WHEN type = '游戏' THEN typecount ELSE 0 END) AS 游戏
FROM         dbo.t_pivot
GROUP BY buydate 

方法 2 (PIVOT)

SELECT     buydate,

                  sum(CASE WHEN 生活 IS NULL THEN 0 ELSE 生活 END) AS '生活',

                  sum(CASE WHEN 学习 IS NULL THEN 0 ELSE 学习 END) AS '学习', 
                  sum(CASE WHEN 动画 IS NULL THEN 0 ELSE 动画 END) AS '动画',

                  sum(CASE WHEN 游戏 IS NULL THEN 0 ELSE 游戏 END) AS '游戏'
FROM         t_pivot PIVOT (sum(typecount) FOR type IN (生活, 学习, 动画, 游戏)) AS pvt
GROUP BY buydate

 

2.行转列

表t_unpivot

SQl 行转列,列转行 (PIVOT,UPIVOT) - zc - zczhangchi 的博客

 转后效果

SQl 行转列,列转行 (PIVOT,UPIVOT) - zc - zczhangchi 的博客
 
方法 1 (常用方法 case when)
 
SELECT     stuname, math AS scores, 'math' AS course
FROM         dbo.t_unpivot
UNION
SELECT     stuname, english AS scores, 'english' AS course
FROM         dbo.t_unpivot
UNION
SELECT     stuname, chinese AS scores, 'chinese' AS course
FROM         dbo.t_unpivot
UNION
SELECT     stuname, history AS scores, 'history' AS course
FROM         dbo.t_unpivot

 方法 2 (UPIVOT)

SELECT     stuname, course, scores
FROM         t_unpivot UNPIVOT (scores FOR course IN (math, english, chinese, history)) AS pvt

  评论这张
 
阅读(2324)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018