case when用法 sql语句case when用法
一、mysql case when 的用法详解
以下是MySQL中CASEWHEN语句的具体用法:
1.什么是CASEWHEN语句
MySQL中的CASEWHEN语句类似于其他编程语言的ifelse语句,可以根据逻辑条件进行分支选择,从而完成不同的操作。
2.CASEWHEN语句的语法格式
CASE
WHENcondition1THENresult1
WHENcondition2THENresult2
...
ELSEresult
END;
说明:
-当condition1满足时,返回result1
-当condition2满足时,返回result2
-...
-当所有的condition都不满足时,返回result
3.CASEWHEN语句的应用场景
-数据处理:条件筛选、分类汇总等
-数据转换:数据类型转换、计算转换等
-数据展示:列展示、列名转换等
4.注意事项
-语法规范:每行后面要加上符号
-空值处理:必须在CASE语句中进行判断处理
-执行效率:case仅仅作为动态生成SQL语句的工具使用时,执行效率不高
5.案例说明
以学生成绩为例,假设有以下数据表:score_table(学生姓名、学科、成绩),根据分数分布情况,我们需要将成绩分成三档,分别为优秀、良好、及格,最后生成新的一列grade,其实现语句如下:
SELECTname,subject,score,
CASE
WHENscore>=90THEN'优秀'
WHENscore>=80THEN'良好'
WHENscore>=60THEN'及格'
ELSE'不及格'
ENDASgrade
FROMscore_table;
结果如下:
|name|subject|score|grade|
|---|---|---|---|
|Tom|Math|90|优秀|
|Amy|Math|78|良好|
|Lily|English|82|良好|
|Jim|Chinese|59|不及格|
|Lucy|Math|95|优秀|
|Steve|Math|82|良好|
本案例通过CASEWHEN语句实现了学生成绩的分数分档,使数据更加直观明了。
希望以上内容能够解决您的问题。
二、SQL中casewhen的用法
casewhen用于SQL中进行条件判断,可以替代复杂的if-else语句,使得SQL代码更简洁易懂语法格式如下:casewhen表达式当条件成立then结果,当条件不成立then结果...else结果nendcasewhen可以在select、update、delete等SQL操作中使用,支持多个条件判断,可以按照需要进行嵌套使用,具有灵活性
三、Oracle:CaseWhen用法
1、不用CASE,用NVL函数即可:
SELECTsid,NVL(sname,'姓名为空')fromstuinfo;
2、CASE:
SELECTsid,
CASEWHENsnameISNULLTHEN'姓名为空'ELSEsnameENDCASE
fromstuinfo;