本文介绍了case when语句在mysql数据库中的用法,介绍了case when语句的基础知识,并提供了相关实例供大家参考。有需要的朋友不要错过。
目录
简单CASE WHEN函数:等价于,使用CASE WHEN条件表达式函数实现:THEN之后的值要和ELSE之后的值类型一致,否则报错。如下:总结
简单CASE WHEN函数:
当“A”然后“优秀”否则“失败”结束时的案例分数
当“B”然后“好”否则“失败”结束时的案例分数
“ELSE”在“C”然后“failed”结束时的情况评分
等同于,使用CASE WHEN条件表达式函数实现:
得分=“A”然后是“优秀”的情况
当分数=B时,则为“好”
当SCORE=' C ' THEN ' in ' ELSE ' failed ' END
THEN后边的值与ELSE后边的值类型应一致,否则会报错。如下:
当“A”然后是“优秀”时的案例分数,否则0结束
如果“优秀”和0的数据类型不一致,将会报告错误:
[Err] ORA-00932:不一致的数据类型:应为CHAR,但却获得了NUMBER。
简单CASE WHEN函数只能处理一些简单的业务场景,而CASE WHEN条件表达式的编写规则更加灵活。
CASE WHEN条件表达式函数:类似JAVA中的IF ELSE语句。
格式:
条件随后产生的情况
[什么时候.然后.]
否则结果
结束
Condition是返回布尔类型的表达式。如果表达式返回true,则整个函数返回相应结果的值。如果表达式都为假,则返回ElSE之后的结果值。如果省略ELSE子句,则返回NULL。
以下是一些常见的场景。
场景1:有了分数,分数60返回失败,分数=60返回通过,分数=80返回优秀。
挑选
学生姓名,
(分数为60时,则“失败”
当得分=60且得分为80时,则“通过”
当得分=80时,则为“优秀”
ELSE“异常”结束)作为注释
从
桌子
注意:如果要判断分数是否为空,当score=null时则为‘缺考’,这是一种错误的写法。正确的写法应该是:
如果分数为空,则“缺席考试”,否则“正常”结束
场景二:现在老师要统计班上有多少男生女生,统计多少男生女生考上了,多少女生考上了。需要使用SQL来输出结果。
表格的结构如下:在STU_SEX字段中,0代表男生,1代表女生。
STU _代码
斯图_姓名
斯图_性
斯图分数
执行节点
小明
0
88
特大号
肖磊
0
55
藏窖年份75年以上)
晓凤
0
45
超高的
小红
一个
66
数列
小妮
一个
77
正常男性染色体组型
孝义
一个
99
挑选
STU _ SEX=0 TH ELSE 0 END时的情况)作为男性计数,
STU _ SEX=1 TH ELSE 0 END时的情况)作为FEMALE_COUNT,
SUM(STU _ SCORE=60且STU_SEX=0 THEN 1 ELSE 0结束时的情况)作为MALE_PASS,
SUM(STU _ SCORE=60且STU_SEX=1 THEN 1 ELSE 0 END时的情况)作为FEMALE_PASS
从
THTF _学生
输出结果如下:
男性_计数
女性_计数
男性通行证
女性_通行证
三
三
一个
三
场景3:经典的行转换成列,用聚合函数进行统计。
要求统计每个城市的总用水量、用电量、耗热量,用一条SQL语句输出结果。
能耗表如下:E_TYPE表示能耗类型,0表示水耗,1表示电耗,2表示热耗。
电子代码
电子值
电子类型
北京
28.50
0
北京
23.51
一个
北京
28.12
2
北京
12.30
0
北京
15.46
一个
上海
18.88
0
上海
16.66
一
上海
19.99
0
上海
10.05
0
挑选
E_CODE,
总和(当E_TYPE=0时,电子值为0,否则结束)作为水_能量,-水耗
总和(当E_TYPE=1时,则电子值否则0结束)为ELE _能量,-电耗
总和(当E_TYPE=2时,电子值否则0结束)为热能-热耗
从
THTF能源测试
分组依据
电子代码
输出结果如下:
电子代码
水能
ELE能源
热能
北京
40.80
38.97
28.12
上海
48.92
16.66
0
场景4:CASE WHEN中使用子查询
根据城市用电量多少,计算用电成本。假设电能耗单价分为三档,根据不同的能耗值,使用相应价格计算成本。
价格表如下:
p _价格
p级
p _极限
1.20
0
10
1.70
一
30
2.50
2
50
当能耗值小于10时,使用P_LEVEL=0时的p _价格的值,能耗值大于10小于30使用P_LEVEL=1时的p _价格的值.
能量=(SELECT P _ LIMIT FROM TABLE _ PRICE,其中P_LEVEL=0)那么(从TABLE _ PRICE中选择P _ PRICE,其中P _ LEVEL=0)的情况
当能量(从表格_价格中选择P_LIMIT,其中P_LEVEL=0)和能量=(从表格_价格中选择P_LIMIT,其中P_LEVEL=1)那么(从表格_价格中选择P_PRICE,其中P_LEVEL=1)
当能量(从表格_价格中选择P_LIMIT,其中P_LEVEL=1)和能量=(从表格_价格中选择P_LIMIT,其中P_LEVEL=2)那么(从表格_价格中选择P_PRICE,其中P_LEVEL=2)
场景5:结合最大聚合函数
什么情况下函数使用起来简单易懂,此篇文章只作了简单的使用介绍,还需在实际工作中根据业务场景不同来灵活使用。
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。