假设有一个学生表 student,包含以下字段:name(姓名)、age(年龄)。请你编写一个 SQL 查询,将学生按照年龄划分为三个年龄等级(age_level):60 岁以上为 "老同学",20 岁以上(不包括 60 岁以上)为 "年轻",20 岁及以下、以及没有年龄信息为 "小同学"。
返回结果应包含学生的姓名(name)和年龄等级(age_level),并按姓名升序排序。
age()去掉,用 age>60、age>20
按姓名升序排序:order by name asc,asc可以省略,默认就是升序,且排序放在最后面
【以下回答由 GPT 生成】
问题解答:
问题有两个部分,第一部分是根据年龄划分为不同的年龄等级,第二部分是按照姓名升序排序。下面是解决这个问题的具体步骤和代码示例。
首先,我们可以使用 CASE WHEN 表达式将年龄划分为不同的年龄等级。然后,我们可以使用 ORDER BY 子句按照姓名升序排序。
解决方案如下:
SELECT
name AS 姓名,
CASE
WHEN age > 60 THEN '老同学'
WHEN age > 20 THEN '年轻'
WHEN age <= 20 OR age IS NULL THEN '小同学'
END AS 年龄等级
FROM
student
ORDER BY
姓名 ASC;
请注意,这里假设学生表的表名为 student。根据实际情况修改表名即可。
如果学生表中的年龄字段(age)的数据类型不是数值型(比如字符型),则在 CASE WHEN 表达式中需要使用适当的函数将字符型转换为数值型进行比较。
如果你有任何问题,请随时提问。
【相关推荐】