文档章节

Oracle 查询不区分大小写 (正则函数)

-wangming-
 -wangming-
发布于 2016/04/18 16:43
字数 919
阅读 118
收藏 2
点赞 1
评论 0

//不区分大小写查询 REGEXP_LIKE(字段名, '(" + keyword+ ")', 'i') " );

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

SELECT name FROM test_like WHERE name like '_a%';

 即匹配test_like表name列中第2个字母是a的所有行。

但是注意,Oracle匹配时区分大小写的。也就是说上面的查询时无法查询到name='SAas'这行的。

Oracle10g中提供的正则表达式功能可以很好的解决这个问题,当然这不是使用正则表达式函数的唯一优点,实际上它比Like操作符强大的多。 正则表达式的语法就不用多说了,现在大多数语言都支持正则表达式了。 下面主要介绍下Oracle中正表达式函数REGEXP_LIKE的使用: REGEXP_LIKE(x, pattern [, match_option])    

当源字符串x匹配正则表达式pattern时,返回true。可以使用match_option修改默认匹配选项,该参数可以被设置为: 

  - 'c', 说明在进行匹配时区分大小写(默认选项) 

- 'i', 说明在进行匹配时不区分大小写 

- 'n'   允许使用可以匹配任意字符的操作符(通常是'.')  

- 'm', 将x作为一个包含多行的字符串 

举个例子:

SELECT * FROM test_reg WHERE REGEXP_LIKE(name, '(a)\1', 'i');

  上面的SQL语句匹配test_reg表中name列含有两个连续字符'a'(不区分大小写)的行,如name='SaAs'。此外,这里我们还使用了正则表达式中的后引用语法——\n表示重复n次上次匹配的内容,此处(a)\1表示匹配两个连续的字符'a'。 需要注意的是,后引用必须使用双括号,否则会出现如下结果: SELECT * FROM test_reg WHERE REGEXP_LIKE(name, 'a\1', 'i')       ORA-12727: 正则表达式中的后向引用无效   最后一点,不要混淆LIKE操作符的通配符和正则表达式的语法,也就是说不要再正则表达式中使用LIKE操作符中的通配符,如果这样做会得到未知的结果,因为'_'和'%'会被正则表达式当做普通字符进行匹配。 比如下面这条SQL想要得到name='SaAs'这条记录,但实际的查询结果为空。 SQL> SELECT * FROM test_reg WHERE REGEXP_LIKE(name, '^_(a)\1', 'i');       NAME   ----------   实际应该使用: SQL> SELECT * FROM test_reg WHERE REGEXP_LIKE(name, '^.(a)\1', 'i');       NAME   ----------   SaAs  

Oracle使用正则表达式离不开这4个函数:

1。regexp_like

2。regexp_substr

3。regexp_instr

4。regexp_replace

看函数名称大概就能猜到有什么用了。

regexp_like 只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配,语法很简单: regexp_like_condition

regexp_substr 函数,和 substr 类似,用于拾取合符正则表达式描述的字符子串,语法如下: regexp_substr regexp_instr 函数,和 instr 类似,用于标定符合正则表达式的字符子串的开始位置,语法如下: regexp_instr

regexp_replace 函数,和 replace 类似,用于替换符合正则表达式的字符串,语法如下: regexp_replace

这里解析一下几个参数的含义:

1。source_char,输入的字符串,可以是列名或者字符串常量、变量。

2。pattern,正则表达式。

3。match_parameter,匹配选项。 取值范围: i:大小写不敏感; c:大小写敏感;n:点号 . 不匹配换行符号;m:多行模式;x:扩展模式,忽略正则表达式中的空白字符。

4。position,标识从第几个字符开始正则表达式匹配。

5。occurrence,标识第几个匹配组。

6。replace_string,替换的字符串。


参考原文:http://blog.csdn.net/huaishuming/article/details/8983184



© 著作权归作者所有

共有 人打赏支持
-wangming-
粉丝 33
博文 78
码字总数 89622
作品 0
上海
后端工程师
Oracle中REGEXP_SUBSTR函数

Oracle中REGEXPSUBSTR函数 Oracle中REGEXPSUBSTR函数的使用说明: 题目如下: 在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20','23'的集合。 REGEXPSUBSTR函数格式如下: functi...

买个ZIPPO点蚊香
2015/12/11
29
0
oracle正则表达式regexp_like用法

/ ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXPLIKE :与LIKE的功能相似 2,REGEXPINSTR :与INSTR的功能相似 3,REGEXPSUBSTR :与SUBSTR的功能相似 4,REGEXPREPLACE :与R...

晨曦之光
2012/03/09
0
0
nginx配置location [=|~|~*|^~] /uri/ { … }用法

nginx location介绍 Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。Location 指令,是用来为匹配的 URI 进行配置,URI 即语法中的”/uri/”,可以是字符串或正则表达式。但如果...

beck_716
2017/01/19
0
0
nginx配置location [=|~|~*|^~] /uri/ { … }用法

nginx配置location [=|~|~*|^~] /uri/ { … }用法 = 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。 ~ 为区分大小写匹配(可用正则表达式) !~为区分大小写不匹配 ~* 为不区分...

赤练挚爱
2017/11/10
0
0
IOS NSPredicate 查询、搜索

简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。 最常用到的函数 + (NSPredicate )predicateWithFormat:(NSString )predicateFormat...

CEOIOS
2015/01/27
0
0
IOS开发之NSPredicate 查询、搜索

简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。 最常用到的函数 + (NSPredicate )predicateWithFormat:(NSString )predicateFormat...

zhangjiansong0
2014/06/05
0
0
IOS NSPredicate 查询、搜索

简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。 最常用到的函数 1.比较运算符 > 、< 、== 、 >= 、<= 、 != 例:@"number >= 99" 2...

vimfung
2013/11/14
0
2
oracle sql语言模糊查询--通配符like的使用教程

oracle在Where子句中,可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些“很像...”的数据记录,以下是可使用的通配符: % 零或者多个字符 _ 单一任何字符(下划线)...

武汉梁朝伟
2014/03/05
0
0
oracle中的单引号

1) oracle中单引号作用是声明为类字符串,且不区分大小写(pl sql 查询语句也不区分大小写) 2) 引号当中还有单引号怎么办? 需要用两个单引号代表一个: ‘’‘要表示成=’‘’‘ 3) 双引...

chworld
2015/09/25
49
0
Nginx Location基本语法

基本语法 location [=|~|~|^~] /uri/ { … } = 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。 ~ 为区分大小写匹配 ~ 为不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不...

山哥
2011/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、登录流程图 二、小程序客户端 doLogin:function(callback = () =>{}){let ...

公众号_好好学java
36分钟前
0
1
流利阅读笔记28-20180717待学习

“我不干了!” 英国脱欧大臣递交辞呈 雪梨 2018-07-17 1.今日导读 7 月 6 日,英国政府高官齐聚英国首相的官方乡间别墅——契克斯庄园,讨论起草了一份关于英国政府脱欧立场的白皮书。可是没...

aibinxiao
今天
6
0
OSChina 周二乱弹 —— 理解超算排名这个事,竟然超出了很多人的智商

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @-冰冰棒- :分享Ed Sheeran/Beyoncé的单曲《Perfect Duet (with Beyoncé)》 《Perfect Duet (with Beyoncé)》- Ed Sheeran/Beyoncé 手机...

小小编辑
今天
138
7
Android 获取各大音乐平台的真实下载地址

废话 电脑使用谷歌浏览器或者QQ浏览器的时候。。。。。。。说不清楚,还是看图吧 大概意思就是,只要网页上需要播放,只要能播放并且开始播放,这个过程就肯定会请求到相关的音乐资源,然后就...

她叫我小渝
今天
0
0
shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
1
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部