case when的使用方法
Posted zhaozhitong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了case when的使用方法相关的知识,希望对你有一定的参考价值。
这篇文章在借鉴前人的基础上,进行了验证,感谢前人的分享
一、case when的使用方法
Case具有两种格式。简单Case函数和Case搜索函数。
第一种 格式 : 简单Case函数 :
格式说明
case 列名
when 条件值1 then 选项1
when 条件值2 then 选项2.......
else 默认值 end
eg:
select
case job_level
when ‘1‘ then ‘1111‘
when ‘2‘ then ‘1111‘
when ‘3‘ then ‘1111‘
else ‘eee‘ end
from dbo.employee
第二种 格式 :Case搜索函数
格式说明
case
when 列名= 条件值1 then 选项1
when 列名=条件值2 then 选项2.......
else 默认值 end
eg:
update employee
set e_wage =
case
when job_level = ‘1‘ then e_wage*1.97
when job_level = ‘2‘ then e_wage*1.07
when job_level = ‘3‘ then e_wage*1.06
else e_wage*1.05
end
提示:通常我们在写Case When的语句的时候,会容易忘记 end 这个结束,一定要记得哟!
比较: 两种格式,可以实现相同的功能。
简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。还有一个需要注意的问题,Case函数只返回第一个符合条件的 值,剩下的Case部分将会被自动忽略。
二、case when使用案例
下面我们来看一下,使用
Case
函数都能做些什么事情。
1、已知数据按照另外一种方式进行分组,分析
- 有如下数据:(为了看得更清楚,直接使用国家代码作为Primary Key)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/99c0f8a6-3a2a-407d-a13b-388a610815b5.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/99c0f8a6-3a2a-407d-a13b-388a610815b5.png)
![技术图片](https://image.cha138.com/20210625/eeb0455bf2ce48a486363ed37a6e12bf.jpg)
根据这个国家人口数据,统计各个大洲的人口数量
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/9fe4fe8d-cd30-4114-8afb-fff152bb1123.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/9fe4fe8d-cd30-4114-8afb-fff152bb1123.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/9fe4fe8d-cd30-4114-8afb-fff152bb1123.png)
![技术图片](https://image.cha138.com/20210625/439a87bd05d742b796b11bf8135b3607.jpg)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/9fe4fe8d-cd30-4114-8afb-fff152bb1123.png)
- 用这个方法来判断工资的等级,并统计每一等级的人数
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/23234ea2-5986-465c-9298-aa2210b218ed.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/23234ea2-5986-465c-9298-aa2210b218ed.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/23234ea2-5986-465c-9298-aa2210b218ed.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/23234ea2-5986-465c-9298-aa2210b218ed.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/23234ea2-5986-465c-9298-aa2210b218ed.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/23234ea2-5986-465c-9298-aa2210b218ed.png)
![技术图片](https://image.cha138.com/20210625/2149ace3554c455ab2de01c9ffe78592.jpg)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/377acea4-bc15-46a6-aeab-03ba43f5e94a.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/377acea4-bc15-46a6-aeab-03ba43f5e94a.png)
![技术图片](https://image.cha138.com/20210625/452a52eb1e4f433bb7c72bd5eb12b862.jpg)
然后计算每一个等级的数量
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/8ef1b83c-bf0b-43b5-a3f9-0f209a0eb087.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/8ef1b83c-bf0b-43b5-a3f9-0f209a0eb087.png)
![技术图片](https://image.cha138.com/20210625/d8538b3f2e2b40069a7d0915753fa609.jpg)
方法2:
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/c3f65255-a762-461a-bee0-ed11b9b366c7.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/c3f65255-a762-461a-bee0-ed11b9b366c7.png)
![技术图片](https://image.cha138.com/20210625/30e0b3b569304c05a562ecd8eff5e82e.jpg)
2、竖表转横表
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/88d0e7c2-32c7-4c2d-b5d2-2e78bc6a6365.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/88d0e7c2-32c7-4c2d-b5d2-2e78bc6a6365.png)
![技术图片](https://image.cha138.com/20210625/b9d8b5df18904293be6b834a8ec6f314.jpg)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/bc0b1723-b69f-4f6c-9825-f24140af39da.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/bc0b1723-b69f-4f6c-9825-f24140af39da.png)
![技术图片](https://image.cha138.com/20210625/ac820ed062fc49bc837d8b7cea6763e4.jpg)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/913edf3f-627a-4245-ad02-dd2b51db7a80.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/913edf3f-627a-4245-ad02-dd2b51db7a80.png)
![技术图片](https://image.cha138.com/20210625/34b8d8dcf1bb4b328eccc02915ecc2d6.jpg)
3、根据条件有选择的update
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/148cae20-570e-4f49-a6a1-2e89df73ffd0.png)
![技术图片](https://image.cha138.com/20210625/4085269360a24134b932e21d17a13d78.jpg)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/148cae20-570e-4f49-a6a1-2e89df73ffd0.png)
![技术图片](https://image.cha138.com/20210625/51029afad36f45a08fc9799bb78d78e0.jpg)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/aecfffb2-8288-4e63-bd1f-8445f28bd03f.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/aecfffb2-8288-4e63-bd1f-8445f28bd03f.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/3f2fe4d6-d844-42f7-a14e-5cc642f508e7.png)
![技术图片](file:///C:/Users/Administrator/Documents/My%20Knowledge/temp/062a7d1b-b8a9-4781-bbcd-509e4fa60704/128/index_files/3f2fe4d6-d844-42f7-a14e-5cc642f508e7.png)
![技术图片](https://image.cha138.com/20210625/37df82b228c846aba65d6f19a6b62d5f.jpg)
![技术图片](https://image.cha138.com/20210625/37df82b228c846aba65d6f19a6b62d5f.jpg)
以上是关于case when的使用方法的主要内容,如果未能解决你的问题,请参考以下文章
CASE WHEN 及 SELECT CASE WHEN的用法(写了一坨烂代码发现两条sql就完成了, 哎)