SQL入门题解 | #查看不同年龄段的用户明细#

查看不同年龄段的用户明细

https://www.nowcoder.com/practice/ae44b2b78525417b8b2fc2075b557592

# # 方法1:使用CASE WHEN搜索
# select device_id,gender,
#     case 
#         when age between 20 and 24 then '20-24岁'
#         when age>=25 then '25岁及以上'
#         when age<20 then '20岁以下'
#         else '其他'
#     end as age_cut 
# from user_profile;

# 方法二
select device_id, gender,
    if(age >= 25,'25岁及以上',
       if(age >=20 and age<=24 ,'20-24岁',
         if(age >= 0,'20岁以下','其他')))
    as age_cut
from user_profile

# ×方法2:使用UNION ALL 不可以 
# 报错:你期望输出的第 1 至 7 行与实际输出的第 1 至 7 行有不同 
# UNION ALL 是把每个抽出来的 再从上到下排列
# 预期 是按照原表中的device_id输出 所以顺序不对 不能用Union all 
/*select device_id,gender,'20岁以下' as age_cut 
    from user_profile where age <20
union all 
select device_id,gender,'20-24岁' as age_cut 
    from user_profile where age>=20 and age<=24
union all 
select device_id,gender,'25岁及以上' as age_cut 
    from user_profile where age>=25
union all 
select device_id,gender,'其他' as age_cut 
    from user_profile where age is NULL*/

全部评论

相关推荐

头像
2024-12-19 18:11
英特尔_Software_engineer
下水道鼠鼠鼠鼠:男的能去当技师吗 好进吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务