case when用法
Posted ichenhao
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)
![](https://image.cha138.com/20210606/5f398a7868bb4ccf82df0bcb4522a55d.jpg)
根据这个国家人口数据,统计各个大洲的人口数量
![](https://image.cha138.com/20210606/ffc3f21737294c11a2d17b6659afe51b.jpg)
- 用这个方法来判断工资的等级,并统计每一等级的人数
![](https://image.cha138.com/20210606/c2364d079f98498dbbd801b284b89a16.jpg)
![](https://image.cha138.com/20210606/69f3156e29f1457fac5cbb739cc21cb2.jpg)
然后计算每一个等级的数量
![](https://image.cha138.com/20210606/7afa9d51f9d2424992134076700ea8f9.jpg)
方法2:
![](https://image.cha138.com/20210606/4099f72b0e08407aaa8ae3db094164ce.jpg)
2、竖表转横表
![](https://image.cha138.com/20210606/b82d11cad8cf4b2eb87839aa90cb1a64.jpg)
![](https://image.cha138.com/20210606/f23dac97be7f4bf09328b31b5e23c986.jpg)
![](https://image.cha138.com/20210606/0d48fc37f37041eba6a8238e0e40459b.jpg)
3、根据条件有选择的update
![](https://image.cha138.com/20210606/20a064d65dc44c98a4697c77349837e3.jpg)
![](https://image.cha138.com/20210606/7f8445b7da4c42acabdf2319430477e0.jpg)
![](https://image.cha138.com/20210606/50f59fc2161442648340b3d614e81b1b.jpg)
以上是关于case when用法的主要内容,如果未能解决你的问题,请参考以下文章