Oracle之instr(字符串包含函数)的用法举例

发布时间:2020-11-05编辑:脚本学堂
本文介绍下,oracle数据库中instr函数的用法,这是一个字符串包含函数,分享一些例子,供大家学习参考。

本文内容:
Oracle的instr函数

总结:判断是否包含于字符串,只要判断此函数执行的结果大于零即可。

例子:
 

复制代码 代码示例:
select * from table where instr(t.name,'天涯')>0 

INSTR(c1,c2,i,j)

例子:
 

复制代码 代码示例:
select instr('123456asdfg','34',1,1) from dual; 
 

返回结果: 2

INSTR(c1,c2)

例子:
 

复制代码 代码示例:
select instr('123456asdfg','34') from dual; 
 

返回结果: 3

函数说明:
c1,c2均为字符串,i,j为整数函数返回c2在c1中第j次出现的位置,搜索从c1的第i个字符开始当没有发现需要的字符时返回0,如果i为负数,那么搜索将从右到左进行,但是位置的计算还是从左到右,i和j的缺省值为1.

函数语法:
instr( string , substring [, position [, occurrence]] )
函数返回substring 在string 中第occurrence次出现的位置,搜索从string 的第position 个字符开始当没有发现需要的字符时返回0,如果position 为负数,那么搜索将从右到左进行,但是位置的计算还是从左到右,position 和occurrence的缺省值为1

在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置
语法如下:
instr( string1, string2 [, start_position [, nth_appearance ] ] ) 

string1 源字符串,要在此字符串中查找。
string2 要在string1中查找的字符串。

start_position 代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。

nth_appearance 代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。

注意:如果String2在String1中没有找到,instr函数返回0.
应用于:Oracle 8i, Oracle 9i, Oracle 10g, Oracle 11g

举例:
 

复制代码 代码示例:
select instr('abc','a') from dual;    -- 返回 1 
select instr('abc','bc') from dual; -- 返回 2 
select instr('abc abc','a',1,2) from dual; -- 返回 5 
select instr('abc','bc',-1,1) from dual; -- 返回 2 
select instr('abc','d') from dual; -- 返回 0