Sql 甲骨文中的instr命令

Sql 甲骨文中的instr命令,sql,oracle,db2,sql-order-by,Sql,Oracle,Db2,Sql Order By,我需要根据搜索条件以特定方式排序查询。我有db2的搜索顺序,但我也需要让它在Oracle中工作 我对db2的查询使用locate函数 Select * from <table> where UPPER(NAME) like "'%<search>%' order by locate('<search>', UPPER(NAME)), UPPER(NAME) 选择* 从…起 其中上部(名称)类似“'%%” 按位置排序(“”,

我需要根据搜索条件以特定方式排序查询。我有db2的搜索顺序,但我也需要让它在Oracle中工作

我对db2的查询使用locate函数

Select   *
from     <table>
where    UPPER(NAME) like "'%<search>%'
order by locate('<search>', UPPER(NAME)),
         UPPER(NAME)
选择*
从…起
其中上部(名称)类似“'%%”
按位置排序(“”,大写(名称)),
上(姓名)
这将返回审查搜索,如下所示:

回顾, 回顾一项任务, 回顾B任务, 另一篇评论

我曾尝试在oracle中使用instr函数,但它并没有返回我所希望的结果

select   *
from     <table>
where    UPPER(name) like '%<search>%'
order by instr('<search>',UPPER(name)),
         name
选择*
从…起
其中上部(名称)类似“%”
仪表命令(“”,上(名称)),
名称

你知道我需要做什么才能得到我想要的订单吗?

你的指令中的参数是错误的。你目前正在搜索词中寻找模式
UPPER(nane)
。以下内容对我有用:

with sample_data as (select 'Review' name from dual union all
                     select 'Review A Task' name from dual union all
                     select 'Review B Task' name from dual union all
                     select 'Another Review' name from dual)
select   *
from     sample_data
where    UPPER(name) like '%REVIEW%'
order by instr(UPPER(name), 'REVIEW'),
         name;

NAME          
--------------
Review        
Review A Task 
Review B Task 
Another Review

谢谢你的帮助!我应该仔细看看函数。