展开全部

LIKE  是 标准的 SQL 处理。e68a8462616964757a686964616f31333332623864 SQL Server, DB2 , MySQL 等大部分数据库, 都支持的写法。

REGEXP_LIKE 是 Oracle 特有的, 正则表达式的 LIKE 的处理。

下面是一些  REGEXP_LIKE  使用的例子测试表

CREATE TABLE test_reg_like ( a varchar(20) );

INSERT INTO test_reg_like VALUES('ABC');

INSERT INTO test_reg_like VALUES('A12');

INSERT INTO test_reg_like VALUES('12a12');3个参数

第一个是输入的字符串

第二个是正则表达式

第三个是取值范围:

i:大小写不敏感;

c:大小写敏感;

n:点号 . 不匹配换行符号;

m:多行模式;

x:扩展模式,忽略正则表达式中的空白字符。

全部测试数据

SQL> SELECT * FROM test_reg_like;

A

----------------------------------------

ABC

A12

12a12

匹配字母A的

SQL> SELECT

2    *

3  FROM

4    test_reg_like

5  WHERE

6    REGEXP_LIKE(a, 'A');

A

----------------------------------------

ABC

A12

匹配字母A的 (大小写不敏感)

SQL> SELECT

2    *

3  FROM

4    test_reg_like

5  WHERE

6    REGEXP_LIKE(a, 'A', 'i');

A

----------------------------------------

ABC

A12

12a12

匹配字母A 后面跟1个或多个数字的 (大小写不敏感)

SQL> SELECT

2    *

3  FROM

4    test_reg_like

5  WHERE

6    REGEXP_LIKE(a, 'A\d+', 'i');

A

----------------------------------------

A12

12a12

匹配字母A开头,数字结尾的

SQL> SELECT

2    *

3  FROM

4    test_reg_like

5  WHERE

6    REGEXP_LIKE(a, '^A.+\d$');

A

----------------------------------------

A12

CREATE TABLE test_phone (

phone_number  varchar(20)

);

INSERT INTO test_phone

SELECT '13812345678' FROM  dual  UNION ALL

SELECT '13812345566' FROM  dual  UNION ALL

SELECT '13812345656' FROM  dual  UNION ALL

SELECT '13812345556' FROM  dual  UNION ALL

SELECT '13812346666' FROM  dual  UNION ALL

SELECT '13855661234' FROM  dual  UNION ALL

SELECT '13856561234' FROM  dual  UNION ALL

SELECT '13855561234' FROM  dual  UNION ALL

SELECT '13866661234' FROM  dual;

--  AAAA 结尾的

SELECT

*

FROM

test_phone

WHERE

REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1\1\1');

PHONE_NUMBER

----------------------------------------

13812346666

--  AABB 结尾的

SELECT

*

FROM

test_phone

WHERE

REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1([^\1])\2')

AND NOT REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1\1\1');

PHONE_NUMBER

----------------------------------------

13812345656

--  ABAB 结尾的

SELECT

*

FROM

test_phone

WHERE

REGEXP_LIKE(REVERSE(phone_number), '^(\d)(\d)\1\2')

AND NOT REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1\1\1');

PHONE_NUMBER

----------------------------------------

13812345656

like效率 regexp_Oracle中REGEXP_LIKE与LIKE的区别相关推荐

  1. like效率 regexp_Oracle 中like效率 正则表达式 浅析

    Oracle 中like常用但是其效率不是高. 特别是使用%a%----->全局扫描,没有利用到任何索引. 情况可以的条件尽量下使用a%------>可以利用正序的索引. %a------ ...

  2. 原 c++中map与unordered_map的区别

    c++中map与unordered_map的区别 头文件 map: #include < map > unordered_map: #include < unordered_map ...

  3. 内存中“堆”和“栈”的区别

    内存中"堆"和"栈"的区别: 程序中用来存放数据的内存分为四块,分别是: 1.全局区(静态区)(static):全局变量和静态变量都存储在这块区域,与其他变量的 ...

  4. linux中系统调用和库函数的区别

    linux中系统调用和库函数的区别 2013-05-03 22:18:20 分类: LINUX 首先,要说一下两者的概念: 系统调用 :是操作系统为用户态运行的进程和硬件设备(如CPU.磁盘.打印机等 ...

  5. SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 原文:SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 MSSQL为我们提供了两种动态执行SQL语 ...

  6. java堆和客栈_java中堆和栈的区别分析

    堆和栈是java数据结构里非常重要的概念,本文较为详细的分析了二者之间的区别.供大家参考.具体如下: Java的堆是一个运行时数据区,类的(对象从中分配空间.这些对象通过new.newarray.an ...

  7. C++中 list与vector的区别

    C++中 list与vector的区别 引用http://www.cnblogs.com/shijingjing07/p/5587719.html C++ vector和list的区别 1.vecto ...

  8. python中的return和print的区别_python中return和print的区别(详细)

    Huskiesir python最近正在研究.今天,我面临一个问题,那就是,返回和印刷的区别.双方都能输出结果.的区别是什么?闲话少说,看下面的例子.# Code1: def break_words( ...

  9. Java中string与String区别_JAVA中String与StringBuffer的区别

    JAVA中String与StringBuffer的区别 2009-12-3文字大小:大中小 在java中有3个类来负责字符的操作. 1.Character 是执行 单个字符操作的, 2.String ...

  10. c语言中栈堆,全程剖析C语言中堆和栈的区别

    C语言中堆和栈的区别 1.申请方式 (1)栈(satck):由系统自动分配.例如,声明在函数中一个局部变量int b;系统自动在栈中为b开辟空间. (2)堆(heap):需程序员自己申请(调用mall ...

最新文章

  1. Ctrl+E快捷键,一键批量解决Excel中90%的问题!
  2. 图解修改Windows启动菜单命令行工具BCDEdit
  3. 代码质量随想录(五)注得多不如注得巧
  4. 英语常见介词错误用法,你有犯过吗?
  5. phpadmin 安装
  6. 我们做出了一个艰难的决定
  7. magic winmail邮件服务器,使用magic winmail server轻松架设邮件服务器(三)_邮件服务器...
  8. python爬虫安装了pycharm还要安装什么_Pycharm安装与使用
  9. Android一键反编译工具 jadx
  10. 国标28181: 视频国标28181协议
  11. 计算机台式内存条,台式电脑怎么装内存条_台式电脑加装内存条方法-win7之家
  12. Hibernate框架的入门级学习运用
  13. BZOJ4567[Scoi2016]背单词
  14. 今天测试twm000 850的windows7 记录
  15. python 微信群发消息
  16. 计算机网络故障的一般识别与解决方法 论文,计算机网络常见故障的一般识别与解决方法-职业学院毕业论文.doc...
  17. inventor 波纹阵列_Inventor技巧之草图驱动的阵列
  18. c语言循环程序模板,循环结构程序设计C语言程序
  19. 土星计划-藤本科植物方案第二期
  20. mega raid linux,在lsi megaraid sas 8204elp 装linux系统(未完待续)

热门文章

  1. 【读书笔记《Android游戏编程之从零开始》】12.游戏开发基础(Canvas 画布)
  2. 在Winform中屏蔽UnityWebPlayer的右键以及自带Logo解决方案整理
  3. 解决mysql客户端中文显示乱码
  4. Android平台下渗透测试工具大集合
  5. R及RStudio软件安装教程
  6. c语言王者荣耀程序代码,王者荣耀:张大仙直言C语言上手并不难,玩家:张工程师成了?...
  7. 吴恩达机器学习中文视频链接
  8. 一站式教育直播系统源码
  9. 数据结构课程设计c语言运动会管理系统
  10. Java语言程序设计与数据结构(基础篇)原书第11版