题解 | #查看不同年龄段的用户明细#
查看不同年龄段的用户明细
http://www.nowcoder.com/practice/ae44b2b78525417b8b2fc2075b557592
SQL27 查看不同年龄段的用户明细
查询条件: 无
查询范围: user_profile表
查询结果: age_cut(将年龄按年龄段划分,若为空则返回其他)。用case表达式即可。
case表达式开始执行时,when子句会从上到下地执行,只要有一个when子句值为真,就会返回相应的表达式,同时忽略其他when子句。如果没有一个when子句条件的值为真,那么将会返回else子句里的表达式。
(1)
select device_id,gender,
case when age>=25 then '25岁及以上'
when age>=20 then '20-24岁'
when age is not null then '20岁以下'
else '其他'
end age_cut
from user_profile
这样写是以为null会被当成0(这样也可以),后来查了资料才发现不是。
(2)
select device_id,gender,
case when age>=25 then '25岁及以上'
when age>=20 then '20-24岁'
when age>=0 then '20岁以下'
else '其他'
end age_cut
from user_profile
查看10道真题和解析