如何为 SQL 增加 IF-THEN-ELSE 逻辑,并且实现行列转换?

上一篇我们学习了 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

猜你喜欢

转载自blog.csdn.net/horses/article/details/108729107