SQL Server数据库纵向转横向
来源:互联网 发布:游戏破解版软件 编辑:程序博客网 时间:2024/05/19 14:19
SQL Server数据库纵向转横向
关键字: sql server 2005 pivot unpivot
以一张薪资表为例,表结构如下:
表结构中,每个员工id对应有多个薪资项目以及金额,需要查询时转向,将每个员工的薪资项目转为横向一行显示。
在直接查询(加入一些限制条件以缩小结果集),
- SELECT
- ssp_pay_empid,
- ssp_pay_sdate,
- ssp_pay_edate,
- ssp_pay_type,
- ssp_pay_amount,
- ssp_pay_item
- FROM ssp_pay
- where ssp_pay_empid = 00000073 and ssp_pay_type = 'RT' and ssp_pay_item
- IN ('/101','/103','/401','/402') and ssp_pay_sdate = '2007-08-01'
得到如下结果:
需要将上述查询结果显示为一行,则使用SQL Server 2005新增的PIVOT ,通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。
执行如下SQL:
- select
- ssp_pay_empid,
- ssp_pay_sdate,
- ssp_pay_edate,
- ssp_pay_type,
- [/101],
- [/103],
- [/401],
- [/402]
- from (
- SELECT
- ssp_pay_empid,
- ssp_pay_sdate,
- ssp_pay_edate,
- ssp_pay_type,
- ssp_pay_amount,
- ssp_pay_item
- FROM ssp_pay
- where ssp_pay_empid = 00000073 and ssp_pay_type = 'RT' and ssp_pay_sdate = '2007-08-01'
- ) AS SourceTable
- PIVOT (SUM(ssp_pay_amount) FOR ssp_pay_item
- IN ([/101],[/103],[/401],[/402])) AS PivotTable
结果为:
- SQL Server数据库纵向转横向
- Sql 横向转纵向
- sql语句纵向转横向
- sql server 纵向表横向输出的实现
- 数据库纵向记录横向显示
- php数组纵向转横向
- php数组纵向转横向
- SQL,纵向数据变为横向显示。
- SQL 纵向表转为横向表
- SQL 将横向数据转为纵向记录
- 数据库中的横向设计与纵向设计
- 横向和纵向的数据库分表
- 数据库拆分:横向拆分和纵向拆分
- 数据库拆分:横向拆分和纵向拆分
- SQL纵向变成横向,横向变成纵向(经典案例添加自己的想法)
- 转mysql横向扩展和纵向扩展
- SQL Server与Oracle数据库事务处理横向对比
- sql查询结果的纵向变横向排列
- [代码]使用函数构造创建XML树(LINQ to XML)
- Linux下谁在消耗我们的cache
- Linux常用命令
- 女孩不要哭泣、悲伤、遗憾
- 我一生中最快乐的日子
- SQL Server数据库纵向转横向
- test
- 2010提升你幽默感的经典短句
- C#操作服务类
- SQL 查询结果的纵向变横向排列
- ipa生成方法
- SQL 查询结果的纵向变横向排列
- [代码]DOM和LINQ to XML创建XML树的三种方式
- 用Eclipse远程调试(Remote debug)Tomcat