在日常的SQL Server数据查询时经常会遇到需要将数据列转换成行的操作,现将自己学习的列转行SQL语句举例如下:

--首先查询语句

SELCT * FROM  YXBAK..TBYJKSTEMP

--列转行的两种方法

--列转行第一种方法,使用CASE ... WHEN ... THEN ... ELSE ... END
SELECT 开单科室,
SUM(CASE 执行科室 WHEN '检验科' THEN 数量 ELSE 0 END) AS '检验科',
SUM(CASE 执行科室 WHEN '超声科' THEN 数量 ELSE 0 END) AS '超声科',
SUM(CASE 执行科室 WHEN '放射科' THEN 数量 ELSE 0 END) AS '放射科',
SUM(CASE 执行科室 WHEN 'CT室' THEN 数量 ELSE 0 END) AS 'CT室',
SUM(CASE 执行科室 WHEN 'MRI室' THEN 数量 ELSE 0 END) AS 'MRI室',
SUM(CASE 执行科室 WHEN '内镜诊疗中心' THEN 数量 ELSE 0 END) AS '内镜诊疗中心',
SUM(CASE 执行科室 WHEN '病理科' THEN 数量 ELSE 0 END) AS '病理科',
SUM(CASE 执行科室 WHEN '心肺功能科' THEN 数量 ELSE 0 END) AS '心肺功能科',
SUM(CASE 执行科室 WHEN '神经电生理检查室' THEN 数量 ELSE 0 END) AS '神经电生理检查室',
SUM(CASE 执行科室 WHEN '健康管理中心超声科' THEN 数量 ELSE 0 END) AS '健康管理中心超声科',
SUM(CASE 执行科室 WHEN '健康管理中心影像科' THEN 数量 ELSE 0 END) AS '健康管理中心影像科'
FROM YXBAK..TBYJKSTEMP GROUP BY 开单科室 ORDER BY 开单科室

--列转行第二种方法使用pivot
--pivot透视
select * from
(select 开单科室,执行科室,数量 from YXBAK..TBYJKSTEMP) as a
pivot (sum(数量)
for 执行科室
IN ([检验科],[超声科],[放射科],[CT室],[MRI室],[内镜诊疗中心],[病理科],[心肺功能科],[神经电生理检查室],[健康管理中心超声科],[健康管理中心影像科]
)) as b ORDER BY 开单科室 asc

SQL Server将查询出数据进行列转行操作的更多相关文章

  1. sql server 如何查询出数据库作业所有者的信息并完成批量替换

    今天数据库对入职一年的我建立了独立的数据库账号,之前我是和其他同事共享的,之前的所有者账号被废弃了,这时导致很多数据库作业执行失败. 下面是说明如何把之前所有的作业的所有者替换成正在使用的账号: 下面 ...

  2. SQL SERVER 和ACCESS的数据导入导出

            //批量导入Access         string filepath = Server.MapPath("student.mdb");         stri ...

  3. CASE函数 sql server——分组查询(方法和思想) ref和out 一般处理程序结合反射技术统一执行客户端请求 遍历查询结果集,update数据 HBuilder设置APP状态栏

    CASE函数   作用: 可以将查询结果集的某一列的字段值进行替换 它可以生成一个新列 相当于switch...case和 if..else 使用语法: case 表达式/字段 when 值 then ...

  4. SQL Server中Table字典数据的查询SQL示例代码

    SQL Server中Table字典数据的查询SQL示例代码 前言 在数据库系统原理与设计(第3版)教科书中这样写道: 数据库包含4类数据: 1.用户数据 2.元数据 3.索引 4.应用元数据 其中, ...

  5. Sql Server中查询今天、昨天、本周、上周、本月、上月数据

    Sql Server中查询今天.昨天.本周.上周.本月.上月数据 在做Sql Server开发的时候有时需要获取表中今天.昨天.本周.上周.本月.上月等数据,这时候就需要使用DATEDIFF()函数及 ...

  6. 【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据

    从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件, 需要用不同的驱动程序来实现. 在64位的机 ...

  7. 【SQL Server数据迁移】32位的机器:SQL Server中查询ORACLE的数据

    从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件,需要用不同的驱动程序来实现. 在32位的机器 ...

  8. sql语句中查询出的数据添加一列,并且添加默认值

    查询出数据,并且要添加一列表中都不存在的数据,且这一列的值都是相等的 select app_id,app_secret from wx_ticket group by app_id; 查询出的数据是 ...

  9. 恢复SQL Server被误删除的数据

    恢复SQL Server被误删除的数据 <恢复SQL Server被误删除的数据(再扩展)> 地址:http://www.cnblogs.com/lyhabc/p/4620764.html ...

随机推荐

  1. Spring Aop 详解一

    Aop 是一个编程思想,最初是一个理论,最后落地成了很多的技术实现. 我们写一个系统,都希望尽量少写点儿重复的东西.而很多时候呢,又不得不写一些重复的东西.比如访问某些方法的权限,执行某些方法性能的日 ...

  2. kafka伪集群搭建

    https://blog.csdn.net/zxy987872674/article/details/72466504

  3. dom4j api 详解【转】

    1.DOM4J简介 DOM4J是 dom4j.org 出品的一个开源 XML 解析包.DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP. DOM4J ...

  4. 【Azure Redis 缓存 Azure Cache For Redis】Redis性能问题,发现Server Load非常的高,导致正常连接/操作不成功

    问题描述 在正常使用Azure Redis的服务中,突然发现Redis 的CPU达到了100%, 正常的使用中发现性能问题严重.从Redis的门户图表中,观察到CPU, Connection,Lent ...

  5. Linux运维学习第三周记

    日落狐狸眠冢上 夜归儿女笑灯前 人生有酒须当醉 一滴何曾到九泉 愿醉卧沙场可未有匹夫之勇. 第三周学记 第三周主要学习正则表达式和Shell编程 1.正则表达式基本字符 2.扩展正则表达式 3.gre ...

  6. 模型评价指标:AUC

    参考链接:https://www.iteye.com/blog/lps-683-2387643 问题: AUC是什么 AUC能拿来干什么 AUC如何求解(深入理解AUC) AUC是什么 混淆矩阵(Co ...

  7. php的三元运算符

    简单记录一哈php的三元运算符的用法:    啥子是三元运算,即第一个表达式作为判断条件,在后面两个表达式中选择一个执行. 若判断成立,则执行第二个表达式,否则执行第三个表达式. 看到好多网友都说的不 ...

  8. (五)F5和CTRL+F5两种刷新的区别

    一.刷新原理不同: F5触发的HTTP请求的请求头中通常包含了If-Modified-Since 或 If-None-Match字段,或者两者兼有. CTRL+F5触发的HTTP请求的请求头中没有上面 ...

  9. 2020最常见的200+Java面试题汇总(含答案解析)

    前言 2020年快要结束了,很多朋友问题,有没有整理今年的一些面试题,最近抽时间整理了一份Java面试题.或许这份面试题还不足以囊括所有 Java 问题,但有了它,我相信足以应对目前市面上绝大部分的 ...

  10. 使用IDEA完成一个SpringBoot的demo

    打算开始做毕业设计了,写一些博客记录一下做毕业设计的过程. 前两天从老师那里拿了学长学姐做的非常简陋的代码,配置环境跑了一下,老师找我的时候说还剩下50%的工作,但感觉至少还有70%. 废话不多说,今 ...