跳到主要内容

CASE WHEN语句

  • CASE WHEN 可以理解为 SQL 中的 条件判断表达式
    • 相当于编程语言的 if、else语句
  • 不改变原始数据,根据条件动态生成结果
sql
CASE
WHEN 条件1 THEN 返回值1
WHEN 条件2 THEN 返回值2
ELSE 默认返回值
END
  • 执行顺序规则
text
1、从上到下判断每个 WHEN 条件;
2、找到第一个成立的条件;
3、返回对应的 THEN 结果;
4、后面的条件不再判断;
5、如果所有条件都不成立,返回 ELSE;
6、如果没有写 ELSE,默认返回 NULL。

应用场景​

  • 状态码转换成文字
sql
SELECT
id,
CASE status
WHEN 0 THEN '待支付'
WHEN 1 THEN '已支付'
WHEN 2 THEN '已取消'
ELSE '未知状态'
END AS status_name
FROM orders;