以一张薪资表为例,表结构如下:

表结构中,每个员工id对应有多个薪资项目以及金额,需要查询时转向,将每个员工的薪资项目转为横向一行显示。

在直接查询(加入一些限制条件以缩小结果集),

1 SELECT
2 ssp_pay_empid,
3 ssp_pay_sdate,
4 ssp_pay_edate,
5 ssp_pay_type,
6 ssp_pay_amount,
7 ssp_pay_item
8  FROM ssp_pay
9  where ssp_pay_empid = 00000073 and ssp_pay_type = 'RT' and ssp_pay_item
10 IN ('/101','/103','/401','/402') and ssp_pay_sdate = '2007-08-01'

得到如下结果:

需要将上述查询结果显示为一行,则使用SQL Server 2005新增的PIVOT,通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。

执行如下SQL:

1 select
2 ssp_pay_empid,
3 ssp_pay_sdate,
4 ssp_pay_edate,
5 ssp_pay_type,
6 [/101],
7 [/103],
8 [/401],
9 [/402]
10  from (
11 SELECT
12 ssp_pay_empid,
13 ssp_pay_sdate,
14 ssp_pay_edate,
15 ssp_pay_type,
16 ssp_pay_amount,
17 ssp_pay_item
18 FROM ssp_pay
19 where ssp_pay_empid = 00000073 and ssp_pay_type = 'RT' and ssp_pay_sdate = '2007-08-01'
20 ) AS SourceTable
21 PIVOT (SUM(ssp_pay_amount) FOR ssp_pay_item
22  IN ([/101],[/103],[/401],[/402])) AS PivotTable

结果为:

以上为记录笔记,无他用。

转载于:https://www.cnblogs.com/Jason_zhu/archive/2010/04/09/1708287.html

SQL Server数据库纵向转横向相关推荐

  1. 优化SQL Server数据库查询方法

    本文详细介绍了优化SQL Server数据库查询方法. SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) ...

  2. 五十种巧妙优化SQL Server数据库

    五十种巧妙优化SQL Server数据库的方法:出现性能问题的原因- 没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷). I/O吞吐量小,形成了瓶颈效应. 没有创建计算列导致查询不 ...

  3. SQL Server数据库优化方案

    SQL Server数据库优化方案 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计 ...

  4. 数据库-SQL Server数据库查询速度慢(连接超时)原因及优化方法

    SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列 ...

  5. 50种方法巧妙优化SQL Server数据库(转载)

    50种方法巧妙优化SQL Server数据库 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3. ...

  6. 转载SQL Server 数据库的性能优化

    你是否在千方百计优化SQL Server 数据库的性能?如果你的数据库中含有大量的表格,把这些表格分区放入独立的文件组可能会让你受益匪浅.SQL Server 2005引入的表分区技术,让用户能够把数 ...

  7. SQL Server 数据库备份

    SQL Server 数据库备份 原文 http://www.cnblogs.com/ynbt/archive/2013/04/04/2999642.html 备份数据库是指对数据库或事务日志进行复制 ...

  8. SQL Server数据库六种数据移动方法

    1. 通过工具DTS的设计器进行导入或导出DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然, ...

  9. python 使用pymssql连接sql server数据库

    Python连接SQL Server数据库 - pymssql使用基础 ----原文地址:http://www.cnblogs.com/baiyangcao/p/pymssql_basic.html ...

最新文章

  1. 应用交换技术的负载均衡算法
  2. 宁‘内卷‘,勿‘躺平‘
  3. ArcGIS中的三种查询
  4. java线程的内存模型_java多线程内存模型
  5. tcpdump软件使用
  6. c html导出成word,html转word-html如何转换成WORD
  7. 【j360-boot】Spring-boot系列三(崩溃模式,不是你崩就是电脑崩)
  8. 如何自定义 maven中的archetype
  9. cmake linux模板 多目录_多目录工程的CmakeLists.txt编写(自动添加多目录下的文件)...
  10. C# xsd转C#类(转)
  11. 伪静态设置php,php伪静态设置
  12. 苹果Mac硬件温度监控软件:TG Pro
  13. 关于mvn install命令执行报错问题
  14. c语言输出指定年份中所有的星期六,用C语言编写程序打印任意年份的日历
  15. kettle基础入门(一)kettle下载、安装
  16. px、%、em、vw、vh、vmax、vmin、rem区别
  17. 【cpu温度过高的原因】
  18. html5个人影集,全屏的个人影集展示网页模板
  19. 92 Three.js 使用设置bumpMap凹凸贴图创建褶皱
  20. win11电脑锁定触摸板或无鼠标打开触摸板

热门文章

  1. 今天tiktok小社群更新 第5个项目行业案例
  2. 为什么把钱花在别人身上更幸福?
  3. 建议大家都玩一下自媒体
  4. 你用什么型号手机呢?体验如何?
  5. go 输入输出流(fmt)
  6. 具有块表的地址变换机构
  7. python对矩阵对角线进行赋值
  8. [leetcode]328. Odd Even Linked List
  9. alwayson高可用组_AlwaysOn可用性组–简化工作的好奇心–第3部分
  10. 关于阿里云OSS报错-java.lang.ClassNotFoundException: org.jdom.input.JDOMParseException