CASE WHEN语句
CASE WHEN可以理解为 SQL 中的 条件判断表达式- 相当于编程语言的 if、else语句
- 不改变原始数据,根据条件动态生成结果
CASE
WHEN 条件1 THEN 返回值1
WHEN 条件2 THEN 返回值2
ELSE 默认返回值
END
- 执行顺序规则
1、从上到下判断每个 WHEN 条件;
2、找到第一个成立的条件;
3、返回对应的 THEN 结果;
4、后面的条件不再判断;
5、如果所有条件都不成立,返回 ELSE;
6、如果没有写 ELSE,默认返回 NULL。
应用场景
- 状态码转换成文字
SELECT
id,
CASE status
WHEN 0 THEN '待支付'
WHEN 1 THEN '已支付'
WHEN 2 THEN '已取消'
ELSE '未知状态'
END AS status_name
FROM orders;