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
结果为表一。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。