行列倒置在sql server中是一种很常见的技巧,在做应用系统的时候,经常需要做一些统计功能避免不了使用行列倒置这个技巧,我小小的做了一下总结: 第一种:sql server 2000中使用case进行行列倒置 create table RowCellConvertTest ( grade varchar(50), sex

行列倒置在sql server中是一种很常见的技巧,在做应用系统的时候,经常需要做一些统计功能避免不了使用行列倒置这个技巧,我小小的做了一下总结:

第一种:sql server 2000中使用case进行行列倒置

create table RowCellConvertTest

(

grade varchar(50),

sex varchar(50),

studentCount int

)

go

insert into RowCellConvertTest

select '一年级','男',100 union all

select '一年级','女',200 union all

select '二年级','男',100 union all

select '二年级','女',100 union all

select '三年级','男',200 union all

select '三年级','女',200

go

select * from RowCellConvertTest

go

--利用SQL Server 2000的case将行转换成列

declare @sql varchar(max)

set @sql = 'select grade'

select @sql=@sql+ ',sum(case when sex = '''+sex+''' then studentCount else '''' end) as '''+sex+'''' from RowCellConvertTest group by sex

--select @sql = substring(@sql,2,len(@sql))

--print @sql

select @sql = @sql +'from RowCellConvertTest group by grade'

exec(@sql)

go

drop table RowCellConvertTest

go

效果:

第二种:

--利用SQL Server 2005新特性pivot将行转换成列

select grade,男,女

from

(

select studentCount, sex, grade from RowCellConvertTest

) p

PIVOT

(

sum (studentCount)

FOR sex IN

(男,女)

) AS pvt

ORDER BY pvt.grade;

附加:将列转换成行

--将列转换成行

create table CellRowConvertTest

(

grade varchar(50),

男 varchar(50),

女 varchar(50)

)

go

insert into CellRowConvertTest

select '一年级',100,200 union all

select '二年级',100,100 union all

select '三年级',200,200

go

select * from CellRowConvertTest

go

select grade,sex,studentCount

from

(

select grade,男,女 from CellRowConvertTest

) as p

unpivot

(

studentCount for sex in (男,女)

) as unpvt;

go

drop table CellRowConvertTest

go

效果:

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

倒置 mysql_SQL Server中的行列倒置技巧相关推荐

  1. SQL Server中Rollup关键字使用技巧 (转)

    首先创建测试表.添加数据. create table #t(a int,b int,c int,d int,e int) insert into #t values(1,2,3,4,5) insert ...

  2. SQL Server中Rollup关键字使用技巧

    首先创建测试表.添加数据. create table #t(a int,b int,c int,d int,e int) insert into #t values(1,2,3,4,5) insert ...

  3. [转] SQL Server中的行列转换问题

    原表结构 序号 性别 部门 工资 1 男 部门a 800 2 女 部门b 900 3 男 部门a 400 4 女 部门d  1400 5 男 部门e 1200 6 男 部门f 500 7 女 部门a  ...

  4. 依赖倒置 php,PHP中的依赖倒置原则

    PHP 5引入了"类型提示",它使函数和方法能够声明"类型化"参数(对象).对于大多数情况,端口示例应该不是一项大任务,例如从Java到PHP 5. 一个非常简 ...

  5. SQL Server中行列转换 Pivot UnPivot (转载)

    SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIV ...

  6. 一维数组元素倒置 c语言,实例12 数组中元素的倒置.pdf

    第1 篇 C 语言基础知识 第1 章 走入C 语言的世界 实例12 数组中元素的倒置 [实例描述] 让一维数组中的元素转置,也就是让数组的元素本末倒置,即第 一个元素变成最后一个元素,第二个元素变成倒 ...

  7. SQL Server中的查询优化技术:提示和技巧

    描述 (Description) Fixing bad queries and resolving performance problems can involve hours (or days) o ...

  8. 依赖倒置原则——举例说明Java设计模式中的依赖倒置原则

    依赖倒置原则--举例说明Java设计模式中的依赖倒置原则 一.前言 看官方定义 二.举例说明 2.1 例子介绍(无聊的可看看,着急的请跳过) 2.2 反例 2.1.1 反例1 (1)类图说明 (2)代 ...

  9. SQL Server中的小技巧(重复、替换、截取、去空格、去小数点后的位数)

    PS:随笔写的在SQL Server中要用到的 (重复.替换.截取.去空格.去小数点后的位数) /*---------------------------重复--------------------- ...

最新文章

  1. 阿里老员工吐槽:新员工水平差!不服管理!还不加班!我要汇报经理让对方无法转正!...
  2. WPF-数据绑定:日期时间格式
  3. websocket在.net4.5中实现的简单demo
  4. 第六天学习Java的笔记(循环语句)
  5. vue前端架构文档_Dubbo分布式架构搭建教育PC站-Vue前端:课程和登录页
  6. php源码微信快速登陆,PHP实现微信开放平台扫码登陆源码下载
  7. 10-ESP8266 SDK开发基础入门篇--上位机通过串口控制ESP8266灯亮灭
  8. 索尼推出 PlayStation 漏洞奖励计划,最严重漏洞5万美元起步
  9. 谷歌浏览器截图_谷歌浏览器如何截图?
  10. VC2015运行库安装失败
  11. 十大排行优惠券app,哪个更适合
  12. webrtc QOS方法一(NACK实现)
  13. 求椭圆的切线方程------很有对称美
  14. STM8和STM32开发总结
  15. 添加虚拟机镜像centso 8的步骤
  16. C++计算机软件系统
  17. Windows系统提示“telnet不是内部或外部命令,也不是可运行的程序或批处理文件”怎么办?
  18. 3.5Redis的性能问题
  19. 《Patterns, Principles, and Pract》— chapter15 Value Objects
  20. linux系统查看系统配置

热门文章

  1. python读取csv文件制图-python读取CSV文件
  2. ubuntu查看python版本-Ubuntu18.04下python版本完美切换的解决方法
  3. python循环语句-python循环语句(第十节)
  4. python整理excel数据-Python 自动整理 Excel 表格
  5. SPOJ Pattern Find(Rabin Karp)
  6. guava之Stopwatch
  7. CheckBox的使用(四):ListView中的项设置为可以多选
  8. 题目1493:公约数
  9. 调试兼容性该注意的的点
  10. 次小生成树(Prim + Kruaskal)