搜索
写经验 领红包
 > 影视

sqlcase语句多个条件(case多条件)

导语:「SQL」CASE多条件分支语句的基本使用

SQL语言里的CASE语句,其作用是实现多条件分支逻辑,类似于编程语言里的if-else和switch-case语句。CASE语句功能十分强大,与其他条件判断语句、更新语句、聚合函数组合在一起时,可实现复杂的数据更新和查询分析功能。

CASE语句的语法

本文先主要给大家介绍下CASE语句的基本使用。CASE语句的语法按照分支条件的类型来划分,有以下两种:

分支条件为常量的CASE语句:根据某列的值来确定执行的分支。

分支条件为条件表达式的CASE语句:根据条件表达式的结果来确定执行的分支。

具体语法格式如下图所示:

CASE语句的注意点

使用CASE语句时需要注意以下几点:

第一:CASE语句的各条件分支是短路执行的,当某一个条件分支满足条件时,其他的条件分支就不会继续执行,所以要保证各条件分支是互斥的,否则可能会得到错误的结果;

第二:当所有的WHEN分支的条件都没有满足时,会执行ELSE分支,虽然ELSE分支可以省略不写,但为了保证语句的完整性,避免意想不到的结果出现,尽量写上ELSE分支;

第三:不要忘记写最后的END,CASE语句以CASE开始,以END结束,每个分支以WHEN开始,以THEN结束,如果忘记写END,则会报错。

基本使用例子

下面我们以一张教师表为例给大家介绍下CASE语句的基本使用,教师表(teacher)的结构和数据如下所示:

当我们想查询出老师名字及其性别时,因为数据库里存的是性别的编码(1代表男,2代表女),如果直接查出性别编码的话,对不明白性别编码含义的用户来说比较不友好,所以我们在查询出性别时,可以基于性别列gender使用条件为常量的CASE语句来进行编码转换,具体SQL和结果如下所示,转化后的性别编码直接显示男或女,这样便一目了然了。

当我们想根据老师年龄输出老师年龄类别时(比如:年龄小于30的为青年老师,大于等于30小于45的为中年老师,大于等于45的为老年老师),可以基于年龄列age,使用分支条件为条件表达式的CASE语句,具体SQL和结果如下所示:

相关阅读:

「Notepad++」格式化SQL

------ The End ------

本文内容由快快网络小嫣创作整理编辑!