首页 > 数据库技术 > 详细

sql 行转列 PIVOT 列转行 UNPIVOT

时间:2014-11-13 20:22:16      阅读:884      评论:0      收藏:0      [点我收藏+]
原文: sql 行转列 PIVOT 列转行 UNPIVOT

一:

现有表一(t_table1),想转为表二(t_table2)的格式。

表一:

公司

收入

2013

公司1

12

2013

公司2

22

2013

公司3

32

2012

公司1

42

2012

公司2

52

2012

公司3

62

 

 

表二:

公司1

公司2

公司3

2012

42

52

62

2013

12

22

32

 

 

可使用sql2005之后提供的PIVOT

 

具体操作如下:

 

select 
*
 from   t_table1 t
 
 PIVOT
( sum(收入) FOR  公司 IN ( 公司1,公司2,公司3) )  a

 

结果为表二。

 

二:

也可将表二转为表一,使用UNPIVOT。具体操作如下:

 


select 
*

 from  t_table2 t 
 UNPIVOT
( 收入 FOR  公司 in ( 公司1,公司2,公司3) )  a

 

 

结果为表一。

 

sql 行转列 PIVOT 列转行 UNPIVOT

原文:http://www.cnblogs.com/lonelyxmas/p/4095615.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!