码迷,mamicode.com
首页 > 数据库 > 详细

sql 行转列 PIVOT 列转行 UNPIVOT

时间:2014-11-13 20:22:23      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   ar   使用   sp   for   strong   

原文: 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

标签:style   blog   http   color   ar   使用   sp   for   strong   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!