Oracle中的instr()函数和substr函数

instr(string,substring,start_position[可选],nth_appearance[可选])

参数:
string:要查找的字符串。

substring:要在字符串(string)中搜索的子字符串。

start_position:此参数可选。表示从字符串的哪个位置开始查找。如果省略,则默认为1。(注意:字符串的索引从1开始,字符串的第一个位置为1)。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索。

nth_appearance:此参数可选。表示要查找第几次出现的子字符串。如果省略,则默认为1。如果为负数则系统会报错

返回值:
该函数返回的是一个数字值,返回要查找的字符串在源字符串中的开始索引。如果在字符串中找不到substring,那么instr函数将返回0。

举例:
字符串为:ab-cd-ef-gh-ij
select instr('ab-cd-ef-gh-ij','-') from dual; --返回结果为3
select instr('ab-cd-ef-gh-ij','-',4) from dual; --返回结果为6
select instr('ab-cd-ef-gh-ij','-',2,3) from dual; --返回结果为9

 


 

substr(string,start_position,length[可选])

参数:
string:字符串

start_position:截取开始位置。为正时,从左往右获取字符串。为负时,从右往左获取字符串。为0时,从字符串开始位置获取字符串(注意:当等于0或1时,都是从第一位开始截取)

length:截取长度。如果省略,则表示从第start_position个字符开始截取后面所有的字符串

返回值:
该函数返回的是截取的字符串

举例:
字符串为:ab-cd-ef-gh-ij
select substr('ab-cd-ef-gh-ij',0,2) from dual; --结果返回ab
select substr('ab-cd-ef-gh-ij',1,2) from dual; --结果返回ab
select substr('ab-cd-ef-gh-ij',4) from dual; --结果返回cd-ef-gh-ij
select substr('ab-cd-ef-gh-ij',4,5) from dual; --结果返回cd-ef

posted @ 2022-04-15 23:43  咖啡&牛奶  阅读(315)  评论(0编辑  收藏  举报