上一篇我们学习了 SQL 中常见的日期时间函数和类型转换函数,熟练使用各种函数可以让我们的数据处理和分析工作事半功倍。
本篇我们介绍一种为 SQL 语句增加逻辑处理功能的方法:CASE 表达式。
SQL 中的 CASE 表达式可以根据不同条件产生不同的结果,实现类似于编程语言中的 IF-THEN-ELSE 逻辑功能。例如,根据员工的 KPI 计算相应的涨薪幅度,根据考试成绩评出优秀、良好、及格等。
CASE 表达式支持两种形式:简单 CASE 表达式和搜索 CASE 表达式。
简单 CASE 表达式
简单 CASE 表达式的语法如下:
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
[ELSE default_result]
END
表达式的计算过程如下图所示:
![simple case](https://img-blog.csdnimg.cn/20190724163844995.png?x-oss-process=image/watermark,typeZmFuZ3poZW5naGVpdGk,shadow10,textaHR0cHM6Ly90b255ZG9uZy5ibG9nLmNzZG4ubmV0,size16,colorFFFFFF,t70#pic_center =660x)
首先计算 expression 的值;然后依次与 WHEN 列表中的值(value1,value2,…)进行比较,找到第一个相等的值并返回对应的结果(result