Oracle常见函数——instr()

本文介绍了SQL instr函数的强大功能,它用于查找字符串中特定字符的位置,类似于Like操作,同时展示了多种用法实例和注意事项。通过理解 instr的参数,掌握如何从指定位置和次数匹配字符,提高查询效率。

先简单介绍下:instr()的作用其实类似于我们常用的Like,只不过多了一些自己的独特的用处:解决我们查询字符串位置的问题

-- 利用下表判断字符串中是否存在某个字符
select instr('ABCD', 'B') from dual where instr('ABCD', 'B') > 0

其实这个SQL就是利用instr()函数的查询字符串所处的位置功能来判断是否含有某个字符进而起到类似like的效果。

instr()其他写法:

-- 获取一个字符串中第几次出现某个字符的位置(从1开始)
select instr('ABCBD', 'B', 1, 2) from dual 
-- 执行的结果是4

select instr('ABCBD', 'B', 1, 1) from dual 
-- 执行的结果是2

select instr('ABCBD', 'B', 1) from dual 
-- 执行的结果是2

select instr('ABCBD', 'B', 3) from dual 
-- 执行的结果是4

写法解析:instr(‘源字符串’, '待匹配的字符串',从第几位字符开始匹配(取值范围≠0) , 第几次匹配)

注意:需要强调的是从第几位开始匹配的正确赋值应该是1,如果取值是负值则是倒着匹配,但是结果还是正着从1开始的位置,不会因为正着或者倒着匹配而改变位置序号。并且从上面的SQL可以看出instr从头到尾只执行一次

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值