instr() 返回要截取的字符串在源字符串中的位置
语法:
instr(sourceString,destString,startPosition,appearPosition)
参数说明:
sourceString:源字符串,要在此字符串中查找。
destString:要在sourceString中查找的字符串。
startPosition:代表在sourceString字符串中哪个位置开始查找。此参数可选,如果忽略默认为1.如果此参数为正数,从左向右检索。如果为负数,从右向左检索。返回查找字符串在源字符串中的索引位置。
appearPosition:代表查找第几次出现的destString,此参数可以忽略,默认为1,设置负数会报错。
如果destString在sourceString没有查找到,则返回0.
Both sourceString and destString can be any of the datatypes CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
, or NCLOB
. The value returned is of NUMBER
datatype.
--返回要截取的字符串在源字符串中的位置
select instr('abc','a') from dual; --返回1
select instr('abc','bc') from dual; --返回2
select instr('aB c abc','a',1,2) from dual; --返回6
select instr('uoabc','bc',-1,1) from dual; --返回4
select instr('abc','d') from dual; --返回0
--startPosition参数为负的情况
select instr('uoabcd','c',-1,1) from dual; --返回5 --范围:uoabcd中查找
select instr('uoabcd','c',-2,1) from dual; --返回5 --范围:uoabc中查找
select instr('uoabcd','c',-3,1) from dual; --返回0 --范围:uoab中查找
扩展:instrb(),instrc(),instr2(),instr4()