记录一条面试sql题目
有一个学生信息表,
字段分别为,name、age、sex。
age字段包含0-50岁的都包含,有的age字段为null。
如果为null将它归为18以下。
现在要用一个sql,比如查出如下字段和数据。
age_size population
0到18岁 7
18岁到25岁 20
25岁以上 10
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语句的停止。