oracle中的函数exp,Oracle中查询使用正则表达式函数REGEXP_LIKE

Oracle中查询使用正则表达式函数REGEXP_LIKE,Oracle中的Like操作符使用

Oracle中的Like操作符使用'_'和'%'作为通配符,使用就像这样:

即匹配test_like表name列中第2个字母是a的所有行。但是注意,Oracle匹配时区分大小写的。也就是说上面的查询时无法查询到name='SAas'这行的。

Oracle10g中提供的正则表达式功能可以很好的解决这个问题,当然这不是使用正则表达式函数的唯一优点,实际上它比Like操作符强大的多。

正则表达式的语法就不用多说了,现在大多数语言都支持正则表达式了。

下面主要介绍下Oracle中正表达式函数REGEXP_LIKE的使用:

举个例子:

上面的SQL语句匹配test_reg表中name列含有两个连续字符'a'(不区分大小写)的行,如name='SaAs'。此外,这里我们还使用了正则表达式中的后引用语法——\n表示重复n次上次匹配的内容,此处(a)\1表示匹配两个连续的字符'a'。

需要注意的是,后引用必须使用双括号,否则会出现如下结果:

最后一点,不要混淆LIKE操作符的通配符和正则表达式的语法,也就是说不要再正则表达式中使用LIKE操作符中的通配符,如果这样做会得到未知的结果,,因为'_'和'%'会被正则表达式当做普通字符进行匹配。

比如下面这条SQL想要得到name='SaAs'这条记录,但实际的查询结果为空。

实际应该使用:

更多Oracle相关信息见Oracle 专题页面 ?tid=12

logo.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值