Order By 自定义字段排序规则

  对数据库查询结果进行排序,大家都知道用 order by 字段名称1,字段名称2…,再结合 DESC/ASC进行倒序升序排序,这里的字段数据参与排序的时候是按照 ASCII码 进行的。但是现在有个需求,按照 7>4>9>5>1>6>3>8>2 排序,使用上面的方法肯定不行,那么怎么办?我们可以使用 order by 自定义字段排序,即可解决问题。例如:下面的规则:
在这里插入图片描述
Mysql
  order by 结合 field(排序字段,value1,value2,…) 定义数据排列顺序,排在前面的优先级高,后面依次。我们看一下在工作中的使用效果:
在这里插入图片描述
  图中可以看出,自定义排序字段是按照 7>4>9>5>1>6>3>8>2 进行的,实际查询出来的结果也是 4 在1 的前面,1在3的前面,3在2的前面,到此,解决了需求问题;需要注意,这种方式适用于数值比较规则的几个,如果成千上万个值不一样,那就不适用。
Oracel
  orcale 实现自定义字段排序与上面类似,将field 换成 decode,同时指定每个值的序号,如:order by decode(排序字段,value1,1,value2,2,…)。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值