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升序排列

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值