![](/img/trans.png)
[英]How to correctly use SUBSTR, INSTR and or REPLACE in Oracle 11G
[英]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.