首页 > 代码库 > sql 行转列 PIVOT 列转行 UNPIVOT
sql 行转列 PIVOT 列转行 UNPIVOT
原文: 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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。