Oracle之instr(字符串包含函数)
原文地址:https://www.iteye.com/blog/liuzidong-1135549
参考资料
1 oracle函数大全-字符处理函数
http://thinbug.bokele.com/?ArticleID=31453
2 oracle的sql里面有没有测试字符串包含的函数
http://msinye.blog.163.com/blog/static/21721472008513327493/
总结:判断是否包含于字符串,只要判断这个函数执行的结果大于零就行了
- 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的instr函数
http://knowyouknowme.iteye.com/blog/554945
引用以上文章
在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