有一个学生信息表,
字段分别为,name、age、sex。
age字段包含0-50岁的都包含,有的age字段为null。
如果为null将它归为18以下。
现在要用一个sql,比如查出如下字段和数据。
age_size population
0到18岁 7
18岁到25岁 20
25岁以上 10
sql
SELECT
CASE
WHEN age < 18 OR age IS NULL THEN '0到18岁'
WHEN age BETWEEN 18 AND 25 THEN '18岁到25岁'
ELSE '25岁以上'
END AS age_size,
COUNT(*) AS population
FROM student_info
GROUP BY
CASE
WHEN age < 18 OR age IS NULL THEN '0到18岁'
WHEN age BETWEEN 18 AND 25 THEN '18岁到25岁'
ELSE '25岁以上'
END;
主要使用了 case when xxxx then xxx when xxx then xxx else xxx end as xxx。请注意
case when then else end,这里的end一定要有,表示case when语句的停止。