原表结构

序号 性别 部门 工资
1 部门a 800
2 部门b 900
3 部门a 400
4 部门d  1400
5 部门e 1200
6 部门f 500
7 部门a  300
8 部门d 1000
9 部门d 1230
10 部门b 2000
11 部门c 2000
12 部门b 1200

最终显示

部门名  人数      男         女     小于800元  从800至999  从1000元至1190元     大于1200元
部门a          3 2 1 2 1 0 0
部门b         3 1 2 0 1 0 2
部门c          1 1 0 0 0 0 1
部门d         3 1 2 0 0 1 2
部门e         1 1 0 0 0 0 1
部门f          1 1 0 1 0 0 0
SELECT 部门名,COUNT(序号) as 人数,
     SUM(CASE 性别 WHEN 1 THEN 1 ELSE 0 END) as 男,
           SUM(CASE 性别 WHEN 2 THEN 1 ELSE 0 END) as 女,
     SUM(CASE SIGN(工资-800) WHEN -1 THEN 1 ELSE 0 END) as 小于800元,
     SUM((CASE SIGN(工资-800)*SIGN(工资-1000)                     /**//*用*来实现<和>功能*/
          WHEN -1 THEN 1 ELSE 0 END)+(CASE 工资
          WHEN 800   THEN 1 ELSE 0 END)) as 从800至999,          /**//*注意别名不能以数字开头*/
     SUM((CASE SIGN(工资-1000)*SIGN(工资-1200)
          WHEN -1 THEN 1 ELSE 0 END)+(CASE 工资
          WHEN 1000 THEN 1 ELSE 0 END)) as 从1000元至1199元,
     SUM((CASE SIGN(工资-1200) WHEN 1 THEN 1 ELSE 0 END)
     +(CASE 工资 WHEN 1200 THEN 1 ELSE 0 END)) as 大于1200元
FroM 工资明细表 
GROUP BY 部门名

转载于:https://www.cnblogs.com/temptation/archive/2008/03/25/1121149.html

[转] SQL Server中的行列转换问题相关推荐

  1. SQL Server中时间格式转换函数convert()的使用

    convert(varchar(10),字段名,转换格式) CONVERT为日期转换函数,一般就是在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar, ...

  2. SQL Server中DateTime格式转换

    SQL使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换, 可以通过查询语句及查询结果来显示不同的格式,如果是Date格式也可以用: Select CONVERT(var ...

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

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

  4. 倒置 mysql_SQL Server中的行列倒置技巧

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

  5. C# 学习笔记(18)操作SQL Server 中

    C# 学习笔记(18)操作SQL Server 中 数据库基础操作 SQL语法可以参考 菜鸟教程 或者微软官方的SQL示例 注意SQL不区分大小写 查 1.基础查询 --最基础的查询语句, selec ...

  6. 细说SQL Server中的加密

    简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程.在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在 ...

  7. predicate 列存储索引扫描_在SQL SERVER中导致索引查找变成索引扫描的问题分析

    SQL Server 中什么情况会导致其执行计划从索引查找(Index Seek)变成索引扫描(Index Scan)呢? 下面从几个方面结合上下文具体场景做了下测试.总结.归纳. 1:隐式转换会导致 ...

  8. SQL SERVER中什么情况会导致索引查找变成索引扫描

    原文:SQL SERVER中什么情况会导致索引查找变成索引扫描 SQL Server 中什么情况会导致其执行计划从索引查找(Index Seek)变成索引扫描(Index Scan)呢? 下面从几个方 ...

  9. as cast float server sql_Sql Server中Float格式转换字符串varchar方法

    SELECT CONVERT(varchar(100), CAST(@testFloat AS decimal(38,2))) SELECT STR(@testFloat, 38, 2) 从Excel ...

最新文章

  1. 工作如果没有方法,光靠苦力是不行的
  2. 第四章 遗传变异的分类
  3. 火爆抖音!各路神仙齐唱《蚂蚁呀嘿》,带你探索背后的原理!
  4. 修复SQL Server Compact数据库时遇到找不到指定的模块的异常
  5. Java源码解读--CopyOnWriteList写时复制集合容器
  6. 2018年4月1日 蓝桥杯 C/C++B组答案 明码
  7. QT学习:线程等待与唤醒
  8. JSON 数据 演示
  9. JS中 window.location.search的作用
  10. 在main函数前后执行的函数之 C语言
  11. Spring+Hiberate 多数据源的网文整理
  12. Idea导入web工程,并运行
  13. 深度学习训练出来的损失不收敛_学习率设置技巧,使用学习率来提升我们的模型...
  14. Docker系列教程26-Docker Compose控制服务启动顺序
  15. JUC笔记-同步器(AQS原理、ReentrantLock原理)
  16. win,linux双系统开机引导修复
  17. 电脑绘图软件有哪些可以简单使用的?
  18. 红旗linux操作系统怎样,红旗linux操作系统应该怎么用
  19. easyExcel实现动态表头设置以及单元格样式设置
  20. python舆情系统开发_用python搭建舆情监控

热门文章

  1. 基于easyui开发Web版Activiti流程定制器详解(二)——文件列表
  2. Windows10电脑系统时间校准
  3. ebtables之BROUTING和PREROUTING的redirect的区别
  4. 《面向对象的思考过程(原书第4版)》一 导读
  5. leetcode------Subsets
  6. MySQL主从数据库配置
  7. dataset.xsd的定义(vs2008)
  8. 差值平方和匹配_纯前端实现图片的模板匹配
  9. kfc流程管理炸薯条几秒_炸薯条成为数据科学的最后前沿
  10. leetcode50. Pow(x, n)(快速幂)