题解 | #牛客的课程订单分析(六)#

牛客的课程订单分析(六)

http://www.nowcoder.com/practice/c5736983c322483e9f269dd23bdf2f6f

Select中case两种写法用法

CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END 
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

举例:

SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END; 
SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;

Select中IF用法举例

SELECT IF(1>2,2,3); -> 3

本题解答

select o.id, o.is_group_buy ,
#case when o.is_group_buy = 'No'then c.name else NULL end
if(o.is_group_buy = 'No',c.name,NULL)
from order_info as o left join client as c
on o.client_id = c.id
where user_id in
(select user_id
from order_info
where date >'2025-10-15'
and product_name in ('C++','Java','Python')
and status = 'completed'
group by user_id
having count(id) > 1)
#因为子查询筛选出来的user_id有重复的不满足题目条件,所以需要再筛选
and o.date > '2025-10-15'
and o.product_name in ('C++','Java','Python')
and o.status = 'completed'
order by o.id asc
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务