MySQL中根据某个指定字段不同值的情况取不同的字段进行排序

最近查询报表遇到一个问题,就是要在一条SQL里面实现某个字段值的不同情况按其他指定字段排序的场景,在网上查阅了一番,找到了相关想要的答案,现在举个栗子看了就能明白,能帮助到跟我遇到一样场景的人
举栗子:
假设有一张学生表,字段
主键id,
学生姓名name,
学生年龄age,
学生年级grades

SELECT * FROM student WHERE classes IN ('三年级','初二','高一')
ORDER BY
CASE WHEN age BETWEEN 6 AND 10 THEN age END desc,
CASE WHEN age BETWEEN 10 AND 18 THEN id END asc;

以上SQL的含义:查询年级为三年级,初二,高一的学生,年龄范围在6-10的按年龄大小倒序,年龄在10-18的按主键id升序排列

你可能感兴趣的:(MySQL,mysql,数据库,sql)