在SQL语句中,CASE表达式是非常重要的函数,在区分不同情况时常使用。
本文介绍CASE表达式的基本语句,语句的基本执行逻辑及使用场景。在使用场景中将以实例展示CASE表达式的用法。
目录
1.基本语句
CASE WHEN <求值表达式> THEN <表达式>
WHEN <求值表达式> THEN <表达式>
WHEN <求值表达式> THEN <表达式>
WHEN <求值表达式> THEN <表达式>
ELSE <表达式>
END
在<求值表达式>中,会采用“列=值”的写法,表达式中也可以使用<>, LIKE,BETWEEN AND,等谓词。
在<求值表达式>中,可以使用AND或者OR写多个条件。
基本语句示例:
CASE WHEN sex='1' THEN '男'
WHEN sex='2' THEN '女'
ELSE '其他'
END
2.语句基本执行逻辑
对于数据表中的每一条记录,CASE表达式会从第一个WHEN开始执行判断,如果返回结果为真(TRUE),那么就返回THEN中的表达式。CASE表达式的执行结束。
如果第一个WHEN执行结果不为真,那么就继续执行下一个WHEN,直到有一个为真,返回THEN中的表达式。CASE表达式的执行结束。
如果所有的WHEN都不为真,那么返回ELSE表达式的结果。执行结束。
CASE语句在执行时,最终会返回一个值,即使写了几十行WHEN THEN,但是CASE表达式执行一次之后,也只会返回简单的值,比如上个示例中的’女‘、’男‘或者’其他‘。
3.使用场景
预先设定grade表,表中是一个班里学生的数学期末考试成绩:
id | name | score | sex |