MYSQL 根据条件order by 动态排序

avatar
作者
猴君
阅读量:0

文章目录

最近在做大数据报表时,遇到这样一种情况,若是A类型,则部门按照正序排序;

若是B类型,则部门按照倒叙排序,相等于案例1的情况。尝试用了下Ai给出的案例,结果sql

一个大大的红×,报错了。可见AI给出的答案也并不是完全准确的。 后来又尝试看看网友们

有什么好用的办法,结果列的答案和AI也是大差不差,甚至内容都和AI一样, 那能使用也是奇怪了。

后来尝试了N遍,突发奇想,尝试了下终于成功了,在这里分享给大家。有需要的可以自取。

案例1:根据动态值的不同,决定某个字段是升序还是降序

根据og.asd字段等于1还是2 决定 og.xc 是升序还是降序 select * from 表A og order by   (case og.asd     when '1' THEN og.xc end ) asc ,  (case og.asd     when '2' THEN og.xc end ) desc ;		 

案例2:根据动态值的不同,决定使用哪个字段排序

根据og.asd字段等于1还是2 决定是使用og.asx 还是og.zxsa排序  select * from 表A og order by 	  (case og.asd   when '2' THEN og.asx   when '1' THEN og.zxsa   end ) desc; 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!