在日常的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. go 继承

    package main import "fmt" type Animal struct { Color string } // 继承动物结构体 type Dog struct { ...

  2. PyCharm搭配github错误处理

    ssh -T git@github.com 验证时 报错Could not open a connection to your authentication agent. 删除前面生成的.ssh文件 ...

  3. Martyr2项目实现——Number部分问题求解(3) Prime Factorization

    Martyr2项目实现--Number部分问题求解(3) Prime Factorization 质因子分解 问题描述: Prime Factorization – Have the user ent ...

  4. Linux命令提示符

    命令提示符:prompt [root@localhost ~]# 用户@主机名 所在目录 用户身份(#管理员 $普通用户) 显示提示符格式 Ubuntu sun@u18-2:~$ echo $PS1 ...

  5. Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互

    引言 在与实现了语音合成.语义分析.机器翻译等算法的后端交互时,页面可以设计成更为人性化.亲切的方式.我们采用类似于聊天对话的实现,效果如下: 智能客服(输入文本,返回引擎处理后的文本结果) 语音合成 ...

  6. 从eclipse迁移到ideal

    个人用eclipse比较多,什么Luna,Neon,Mars.几乎每年都要研发出一个版本.目前所在的这家公司,维护的是一个10年的老项目,需求迭代频率比较高,业务代码臃肿而难理解,依赖关系不清晰,代码 ...

  7. 1.DRF初始化

    1.DRF框架的8个核心功能   1.认证(用户登录校验用户名密码或者token是否合法) 2.权限(根据不同的用户角色,可以操作不同的表) 3.限流(限制接口访问速度) 4.序列化(返回json) ...

  8. testNG优雅的使用注解让你的测试项目开发更高效!

    testNG大部分是通过xml配置测试类和监听类 但是这种方法就像传统的spring框架一样需要引入大量的xml配置信息,而且在各层之间也需要通过new对象传递.如果testNG能使用注解注入bean ...

  9. Java集合(类)框架(三)

    1. Map集合 相较于List和Set集合而言,Map集合所储存的数据为双列行,数据是以key和value为一个单位进行存储的,如在建立一个学生Map的时候,其中的数据应为 学号-姓名(key-va ...

  10. Exception in MIPS

    介绍 分支.跳转.异常(包括硬件中断)是三种改变控制流的事件. 同步异常是指程序执行到固定位置必定触发且每次现象一致的异常,如算术溢出异常.未定义指令异常.缺页异常等. 异步异常与当前执行程序无关,如 ...