oracle中查找指定字符串的位置,instr函数笔记:
1,instr(x,y);
x:源字符串

y:目标字符串

select instr(‘abcdefgxyzaa’,‘a’) position from dual;-- 1 返回第一次出现的位置

select instr(‘abcdefgxyzaa’,‘t’) position from dual;-- 0 未找到返回0

2,instr(x,y,z,o);
x:源字符串

y:目标字符串

z:起始位置

o:第几次出现

注意:如果z是正数,从正向查找

       如果z是负数,从反向查找

======================== 下面是正向查找============================

select instr(‘abcdefgxyzaa’,‘a’,1,1) position from dual;-- 1 从第1位置开始查找,第1次出现目标字符串的位置
select instr(‘abcdefgxyzaa’,‘a’,1,2) position from dual;-- 11 从第1位置开始查找,第2次出现目标字符串的位置
select instr(‘abcdefgxyzaa’,‘a’,2,2) position from dual;-- 12 从第2位置开始查找,第2次出现目标字符串的位置
select instr(‘abcdefgxyzaa’,‘a’,2,3) position from dual;-- 0 从第2位置开始查找,第3次出现目标字符串的位置,未发现返回0

======================== 下面是反向查找============================

select instr(‘abcdefgxyzaa’,‘a’,-1,3) position from dual;-- 1 从倒数第1位置开始反向查找,第3次出现目标字符串的位置
select instr(‘abcdefgxyzaa’,‘a’,-2,1) position from dual;-- 11 从倒数第2位置开始反向查找,第1次出现目标字符串的位置
select instr(‘abcdefgxyzaa’,‘a’,-2,2) position from dual;-- 1 从倒数第2位置开始反向查找,第2次出现目标字符串的位置
select instr(‘abcdefgxyzaa’,‘a’,-2,3) position from dual;-- 0 从倒数第2位置开始反向查找,第3次出现目标字符串的位置,未发现返回0

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐