Oracle常见函数——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从头到尾只执行一次

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值