为了账号安全,请及时绑定邮箱和手机立即绑定

在oracle中怎样实现排序是按查询的条件来排的?

在oracle中怎样实现排序是按查询的条件来排的?

HUX布斯 2022-04-15 15:11:48
在oracle中怎样实现排序是按查询的条件来排的,以下是mysql的实现 select * from t_exam_item_info where i在oracle中怎样实现排序是按查询的条件来排的,以下是mysql的实现select * from t_exam_item_info where item_num in ( 'GMEXIN10484','HXEXIN10472','HXEXIN10471','GMEXIN10487','GMEXIN10483' )order by find_in_set(item_num,'GMEXIN10484','HXEXIN10472','HXEXIN10471','GMEXIN10487','GMEXIN10483' )最后出来的列表是按'GMEXIN10484','HXEXIN10472','HXEXIN10471','GMEXIN10487','GMEXIN10483'这个来排序
查看完整描述

3 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

将该字段进行某种函数的处理后进行排序。
但这里的数据看上去似乎没有什么函数关系。
MYSQL的这个功能不错,可惜在ORACLE里没有见过。
既然是用户自己的排序方法,那么感觉这个问题更偏重于应用逻辑。
一个思路:自己建立一个排序字段(PX),录入信息的时候,用户可以决定该条记录的排序等级(自动、手动填写该字段都可以)。应用的时候可以按照这个字段进行排序。这里是用户指定的排序方式,以后要调整顺序时,修改这个排序字段的值就可以了。

查看完整回答
反对 回复 2022-04-19
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

find_in_set这个函数不错,可惜Oracle中没有,但是我们可以变相应用,同样可以起到相同的效果。
select
decode(teii.item_num,'GMEXIN10484',1,'HXEXIN10472',2,'HXEXIN10471',3,'GMEXIN10487',4,'GMEXIN10483',5) sequence ,
teii.*
from t_exam_item_info teii
where teii.item_num in ( 'GMEXIN10484','HXEXIN10472','HXEXIN10471','GMEXIN10487','GMEXIN10483' )
order by decode(teii.item_num,'GMEXIN10484',1,'HXEXIN10472',2,'HXEXIN10471',3,'GMEXIN10487',4,'GMEXIN10483',5) ;



查看完整回答
反对 回复 2022-04-19
?
www说

TA贡献1775条经验 获得超8个赞

oralce中的查询是按照字段来排序的,有升序【asc】,降序【desc】,你的查询条件也是一字段,所以可以按照查询条件所在的字段来排序。这个可能与mysql中查询出来的效果是一样的,
还可以将字段回上某个函数值来排序,这个就看你的需要了。如
select * from t_exam_item_info
where tem_num in ( 'GMEXIN10484','HXEXIN10472','HXEXIN10471','GMEXIN10487','GMEXIN10483' )
order by infocode desc;
这个是以字段infocode降序排序的结果。

查看完整回答
反对 回复 2022-04-19
  • 3 回答
  • 0 关注
  • 364 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信