SQL Server---Case When用法简介

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

 

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影子网络科技有限公司

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
3月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何在SQL语句里使用CASE WHEN语句
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
SQL Java 数据库连接
SQL SELECT语句的基本用法
SQL SELECT语句的基本用法
|
2月前
|
SQL XML Java
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
文章介绍了MyBatis中动态SQL的用法,包括if、choose、where、set和trim标签,以及foreach标签的详细使用。通过实际代码示例,展示了如何根据条件动态构建查询、更新和批量插入操作的SQL语句。
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
|
2月前
|
SQL 存储 安全
SQL Server用法
SQL Server用法
73 1
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
48 1
|
2月前
|
SQL
SQL: 巧妙使用CASE WHEN实现查询
文章演示了如何利用SQL中的CASE WHEN语句来有效地进行条件性聚合查询,通过具体示例展示了CASE WHEN在统计分析中的应用技巧。
70 0
|
3月前
|
SQL 关系型数据库 MySQL
8、SQL高级用法
8、SQL高级用法
19 0
|
4月前
|
SQL 存储 数据库
SQL简介
【7月更文挑战第10天】SQL简介。
86 2
|
4月前
|
SQL Java 数据库连接
SQL SELECT语句的基本用法
SQL SELECT语句的基本用法
|
4月前
|
SQL 数据采集 BI
SQL CASE WHEN语句详解
SQL CASE WHEN语句详解
下一篇
无影云桌面