开发者社区> codyl> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SQL Server---Case When用法简介

简介:
+关注继续查看

 

Casewhen 用法简介

 

         上一篇博客使用了casewhen解决了数据汇总的问题,那么这一篇博客我将简单的介绍一下关于case when的使用。

        

         CASEWHEN的表达形式


         1、简单的case函数

--简单Case函数
CASE letterType 
WHEN '干部介绍信' THEN '1' 
WHEN '转递档案通知单' THEN '2' 
ELSE '其他' END 

         2、case搜索函数

--Case搜索函数
CASE
WHEN letterType='干部介绍信' THEN '1' 
WHEN letterType='转递档案通知单' THEN '2' 
ELSE '其他' END

         简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。

 

         CASEWHEN 在语句中不同位置的用法

 

         1、  SELECT CASE WHEN用法

select userID ,
count(CASE WHEN letterType='干部介绍信' then '1' end)干部介绍信数,
count(CASE WHEN letterType='转递档案通知单' then '1' end)转递档案通知单数
from T_LettersRecord GROUP BY userID

         运行结果:


         2、 WHERE CASE WHEN 用法

SELECT l.letterType, u.realName
   FROM T_LettersRecord as l, T_User as u
  WHERE (CASE WHEN l.letterType = '干部介绍信' AND
                   u.userID = '1'
                THEN1
              WHENl.letterType = '干部介绍信' AND
                   u.userID <> '1'
                THEN1
              ELSE0
           END) = 1

         运行结果:


        

         3、 GROUP BY CASE WHEN 用法

SELECT 
CASE WHEN salary <= 3000 THEN 'T1' 
WHEN salary > 3000 AND salary <=8000  THEN'T2' 
WHEN salary > 8000 AND salary <=12000  THEN'T3' 
WHEN salary > 12000 AND salary <= 20000 THEN 'T4' 
ELSE NULL END 级别名称, -- 别名命名
COUNT(*) 
FROM    t_userSalary
GROUP BY 
CASE WHEN salary <= 3000 THEN 'T1' 
WHEN salary > 3000 AND salary <=8000  THEN'T2' 
WHEN salary > 8000 AND salary <=12000  THEN'T3' 
WHEN salary > 12000 AND salary <= 20000 THEN 'T4' 
ELSE NULL END;

         运行结果:

 

         本文简单的介绍了一下CASEWHEN的简单使用方法,希望能够对读者能够有所帮助。

 

         参考文章:

http://www.cnblogs.com/eshizhan/archive/2012/04/06/2435493.htmleshizhan

http://www.cnblogs.com/yazdao/archive/2009/12/09/1620482.html影子网络科技有限公司

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
sqlServer对内存的管理
简介     理解SQL Server对于内存的管理是对于SQL Server问题处理和性能调优的基本,本篇文章讲述SQL Server对于内存管理的内存原理。   二级存储(secondary storage)     对于计算机来说,存储体系是分层级的。
1016 0
SQLServer · BUG分析 · Agent 链接泄露分析
背景 SQLServer Agent作为Windows服务提供给用户定期执行管理任务,这些任务被称为Job;考虑应用镜像的场景如何解决Job同步问题,AWS RDS的做法是不予理会,由用户维护Job,假如发生切换用户需要在新的Principal端创建Job;另一种做法是镜像端保持同步Job,切换后
1661 0
10G RAC RAW+ASM rhel-server-5.5-x86_64
由于学校老师只讲了11g的RAC安装,所以想自己试试,中间出了很多错误,借鉴了很多前辈写的文档,无抄袭之意,仅为自己学习所整理,可能有很多错误,欢迎指正 这里我会提供我安装过程中所需要的所有安装包和光盘镜像等,省的大家跟我似的苦逼呵呵找半天虚拟机镜像: http://pan.
1180 0
SQL Server安全性专题一:简介
原文: SQL Server安全性专题一:简介 一、 安全威胁与法则 1、 安全定义 2、 安全威胁 3、 安全法则 安全定义: 在SQLServer环境中,安全性可以认为是【数据保护】。
914 0
SQL SERVER中Case的使用方法
Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '
861 0
+关注
codyl
make it possible
86
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载