题解 | 判断其是否有过购买记录
判断其是否有过购买记录
https://www.nowcoder.com/practice/5cddad8995974b0c915ab89961428ee0
select customer_id, case when latest_place_order_date is null then 0 else 1 end as if_placed_order from customers_info
在 SQL 中,CASE WHEN 是一种条件表达式,用于根据不同条件返回不同结果,类似编程语言中的 “分支判断”(如 if-else)。它可以在 SELECT、UPDATE、WHERE、ORDER BY 等子句中使用,是处理条件逻辑的核心工具。
CASE WHEN 有两种常见形式:
1. 简单 CASE 表达式(针对单一列的等值判断)
sql
CASE 列名
WHEN 值1 THEN 结果1
WHEN 值2 THEN 结果2
...
ELSE 默认结果 -- 可选:所有条件不满足时返回
END
- 作用:对指定列的值进行等值匹配,返回对应结果。
2. 搜索 CASE 表达式(支持复杂条件判断)
sql
CASE
WHEN 条件1 THEN 结果1
WHEN 条件2 THEN 结果2
...
ELSE 默认结果 -- 可选
END
- 作用:支持任意条件(如范围、多列组合、函数计算等),更灵活,是实际开发中最常用的形式。
