case when的用法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
case when的用法
case when是SQL语句中常用的一个判断结构,用于根据查询条件的不同来执行不同的操作,主要用于多个分支的逻辑处理,即根据不同的条件,返回不同的结果。
也可以把它理解为if-else语句的SQL表达式,即先判断查询结果,如果查询结果符合条件,则返回值A;如果不符合条件,则返回值B。
就像if-else语句一样,case when语句也有三个部分组成,即case、when、then。
首先,case是case when结构的关键,它表示“如果”,它会判断指定的条件。
其次,when表示“如果”的条件,它是跟在case后面的,指出要判定的条件。
多个条件之间可以用关键字"and"或"or"来组合在一起,当满足其中任何条件时就会执行对应的then后面的操作。
最后,then表示“那么”,它是case when结构中最后一个关键字,它会根据前面case和when设定的条件进行判断,符合条件就会执行then后面指定的操作;不符合条件时就会执行else后面指定的操作。
因此case when语句如下形式:
case
when 条件1 then 执行1
...
else 默认执行操作
end
不用case when这种结构的时候,可以考虑if-else语句,但if-else存在的缺点是只能判断两种情况,而case when结构在同一语句中可以写出多个判断条件,多分支的逻辑处理更加灵活。
比如要查询某表,根据不同的分数查询对应的等级,可以使用case when结构:
select name,score,
when score>80 then 'B'
else 'E'
end as rank
from student;
这样就可以根据比较多的条件来判断结果,而且很方便。
总之,case when是SQL中一种常见的判断结构,主要的作用是根据不同的条件返回不同的结果,可以方便的实现多分支的逻辑处理,增强了查询的灵活性与精准性。