题解 | 判断其是否有过购买记录
判断其是否有过购买记录
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
- 作用:支持任意条件(如范围、多列组合、函数计算等),更灵活,是实际开发中最常用的形式。