oracle中查找指定字符串位置

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

 

 

你可能感兴趣的:(oracle)