Oracle中的instr()函数应用及使用详解
1、instr()函数的格式(俗称:字符查找函数)
格式一:instr(string1,string2)//instr(源字符串,目标字符串)
格式二:instr(string1,string2[,start_position[,nth_appearance]])//instr(源字符串,目标字符串,起始位置,匹配序号)
解析:string2的值要在string1中查找,是从start_position给出的数值(即:位置)开始在string1检索,检索第nth_appearance(几)次出现string2。
注:在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,也就是说从字符的开始到字符的结尾就结束。
2、实例
格式一
selectinstr('helloworld','l')fromdual;--返回结果:3默认第一次出现“l”的位置 selectinstr('helloworld','lo')fromdual;--返回结果:4即“lo”同时(连续)出现,“l”的位置 selectinstr('helloworld','wo')fromdual;--返回结果:6即“w”开始出现的位置
格式二
selectinstr('helloworld','l',2,2)fromdual;--返回结果:4也就是说:在"helloworld"的第2(e)号位置开始,查找第二次出现的“l”的位置 selectinstr('helloworld','l',3,2)fromdual;--返回结果:4也就是说:在"helloworld"的第3(l)号位置开始,查找第二次出现的“l”的位置 selectinstr('helloworld','l',4,2)fromdual;--返回结果:9也就是说:在"helloworld"的第4(l)号位置开始,查找第二次出现的“l”的位置 selectinstr('helloworld','l',-1,1)fromdual;--返回结果:9也就是说:在"helloworld"的倒数第1(d)号位置开始,往回查找第一次出现的“l”的位置 selectinstr('helloworld','l',-2,2)fromdual;--返回结果:4也就是说:在"helloworld"的倒数第2(l)号位置开始,往回查找第二次出现的“l”的位置 selectinstr('helloworld','l',2,3)fromdual;--返回结果:9也就是说:在"helloworld"的第2(e)号位置开始,查找第三次出现的“l”的位置 selectinstr('helloworld','l',-2,3)fromdual;--返回结果:3也就是说:在"helloworld"的倒数第2(l)号位置开始,往回查找第三次出现的“l”的位置
注:MySQL中的模糊查询like和Oracle中的instr()函数有同样的查询效果;如下所示:
MySQL:select*fromtableNamewherenamelike'%helloworld%'; Oracle:select*fromtableNamewhereinstr(name,'helloworld')>0;--这两条语句的效果是一样的
3、实例截图
1、
2、
3、
4、
5、
6、
7、
8、
9、
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。