繁体   English   中英

oracle 11g中的instr()

[英]instr() in oracle 11g

SQL> select instr('stringrings','rin',-4,1) from dual;

INSTR('STRINGRINGS','RIN',-4,1)
-------------------------------
                              7

当我将搜索位置设置为-4并且从右到左向后搜索时,尽管整个模式与给定的搜索开始位置都不匹配,但返回的匹配位置为7。 这里只有部分模式与原始字符串匹配。

SQL> select instr('stringrings','rin',-5,1) from dual;

INSTR('STRINGRINGS','RIN',-5,1)
-------------------------------
                              7

这里也是同样的结果...

SQL> select instr('stringrings','rin',4,1) from dual;

INSTR('STRINGRINGS','RIN',4,1)
------------------------------
                             7

但是在这里,在正方向搜索中,它忽略了部分模式匹配,并给出了精确模式匹配的位置。有人可以向我解释吗? 为什么会有这种双重标准?

没有双重标准:

select instr('stringrings','rin',-4,1) from dual;

从stringr NGS(-4)INSTR开始搜索,向后搜索,直到第一RIN =串RIN GS(7)

select instr('stringrings','rin',-5,1) from dual;

从串R英格斯(-5)INSTR开始搜索,向后搜索,直到第一RIN =串RIN GS(7)

select instr('stringrings','rin',4,1) from dual;

从开始INSTR搜索STR ngrings(4),foreward搜索,直到第一RIN =串RIN GS(7)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM