• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle 模糊查询中不包括某字符串的实现方式

mysql 搞代码 4年前 (2022-01-09) 20次浏览 已收录 0个评论

有这么一个需求,查询号码以11结尾,并且从第四位到第八位数字中不能包含ldquo;4rdquo;,最开始以为oracle 和sql server一样支

有这么一个需求,查询号码以11结尾,并且从第四位到第八位数字中不能包含“4”,最开始以为Oracle 和sql server一样支持 [^4],上网查了很多也是说支持的,我反正用了没效果。 万般无奈下,用了instr 和substr 两个函数 才得以解决。

instr( string1, string2 [, start_position [, nth_appearance ] ] ) :取得字符串在指定字符串中的索引

  参数分析:

  string1

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

  string2

  要在string1中查找的字符串.

  start_position

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

  nth_appearance

  代表要查找第几次出现的string2.

本文来源gao!daima.com搞$代!码#网#

此参数可选,如果省略,默认为 1.如果为负数系统会报错。

查找的时候如果没有找到返回 0,找到了就会返回找到的字符的在查找的字符串索引。

substr( string, start_position [, length ] ):取得字符串中指定起始位置和长度的字符串

  参数分析:

  string

  源字符串,要在此字符串中截取。

  start_position

  要在string中截取的开始位置。

  length

  要在string中从开始位置截取到指定的长度结束。

语句其实很简单:

select count(*) from tb_name where no like ‘%11′ and instr(substr(no, 4,5),’4’)0

这样子就可以了。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle 模糊查询中不包括某字符串的实现方式

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址