sql 行转列 PIVOT 列转行 UNPIVOT
2013-10-31 15:01
155 查看
一:
现有表一(t_table1),想转为表二(t_table2)的格式。
表一:
表二:
可使用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
结果为表一。
现有表一(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 |
具体操作如下:
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)
- sql 行转列 PIVOT 列转行 UNPIVOT
- 经常用到的透视函数(行转列&列转行)函数 PIVOT()&UNPIVOT
- SQL中PIVOT 行转列和UNPIVOT列转行实例讲解
- T-Sql语法:行转列(pivot)和列转行(unpivot)
- Oracle :数据库优化及 pivot(行转列) 和unpivot(列转行)
- PIVOT函数快速实现行转列,UNPIVOT实现列转行
- Oracle 行转列pivot 、列转行unpivot 的Sql语句总结
- SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行
- 【原】SQL 使用 PIVOT 和 UNPIVOT 行转列 列转行
- Oracle 行转列pivot 、列转行unpivot 的Sql语句总结
- SQL列转行及行转列
- SQL中行列转换 Pivot UnPivot
- SQL中行列转换 Pivot UnPivot 行列转化与PIVOT、UNPIVOT运算符使用
- 用 PIVOT 和 UNPIVOT实现Sql Server中行转列和列转行
- SQL行列转换,PIVOT与UNPIVOT的区别和使用方法举例
- 重温SQL——行转列,列转行
- [导入]Sql Server2005 Transact-SQL 新兵器学习总结之-PIVOT和UNPIVOT运算符
- 使用 PIVOT 和 UNPIVOT(MS SQL Server行列转换)
- Transact-SQL 使用 PIVOT 和 UNPIVOT 实现行与列之间的转化