oracle在Where子句中,可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些“很像...”的数据记录,以下是可使用的通配符:

% 零或者多个字符

_ 单一任何字符(下划线)

\ 特殊字符

oracle10g以上支持正则表达式的函数主要有下面四个:

1,REGEXP_LIKE :与LIKE的功能相似

2,REGEXP_INSTR :与INSTR的功能相似

3,REGEXP_SUBSTR :与SUBSTR的功能相似

4,REGEXP_REPLACE :与REPLACE的功能相似

POSIX 正则表达式由标准的元字符(Metacharacters)所构成:

'^' 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表示不接受该字符集合。

'$' 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹

配 '\n' 或 '\r'。

'.' 匹配除换行符之外的任何单字符。

'?' 匹配前面的子表达式零次或一次。

'+' 匹配前面的子表达式一次或多次。

'*' 匹配前面的子表达式零次或多次。

'|' 指明两项之间的一个选择。例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的

字符串。

'( )' 标记一个子表达式的开始和结束位置。

'[]' 标记一个中括号表达式。

'{m,n}' 一个精确地出现次数范围,m=

出现m次。

\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。

字符簇:

[[:alpha:]] 任何字母。

[[:digit:]] 任何数字。

[[:alnum:]] 任何字母和数字。

[[:space:]] 任何白字符。

[[:upper:]] 任何大写字母。

[[:lower:]] 任何小写字母。

[[:punct:]] 任何标点符号。

[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]。

各种操作符的运算优先级

\转义符

(),(?:),(?=),[] 圆括号和方括号

*,+,?,{n},{n,},m} 限定符

^,$,anyMetacharacter 位置和顺序

|

*/

其中关于条件,sql提供了四种匹配模式:

1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'

将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。

另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件

SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'

若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。

2,_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'

只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;

再比如 SELECT * FROM [user] WHERE u_name LIKE '三__';

只找出“三脚猫”这样name为三个字且第一个字是“三”的;

3. regexp_like 正则表达式函数查询 --查询FieldName中以1开头60结束的记录并且长度是7位 select * from fzq where FieldName like '1____60'; select * from fzq where regexp_like(FieldName,'1....60'); --查询FieldName中以1开头60结束的记录并且长度是7位并且全部是数字的记录。 --使用like就不是很好实现了。 select * from fzq where regexp_like(FieldName,'1[0-9]{4}60'); -- 也可以这样实现,使用字符集。 select * from fzq where regexp_like(FieldName,'1[[:digit:]]{4}60'); -- 查询FieldName中不是纯数字的记录 select * from fzq where not regexp_like(FieldName,'^[[:digit:]]+$'); -- 查询FieldName中不包含任何数字的记录。 select * from fzq where regexp_like(FieldName,'^[^[:digit:]]+$'); --查询以12或者1b开头的记录.不区分大小写。 select * from fzq where regexp_like(FieldName,'^1[2b]','i'); --查询以12或者1b开头的记录.区分大小写。 select * from fzq where regexp_like(FieldName,'^1[2B]'); -- 查询数据中包含空白的记录。 select * from fzq where regexp_like(FieldName,'[[:space:]]'); --查询所有包含小写字母或者数字的记录。 select * from fzq where regexp_like(FieldName,'^([a-z]+|[0-9]+)$'); --查询任何包含标点符号的记录。 select * from fzq where regexp_like(FieldName,'[[:punct:]]');

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

oracle数字通配符,oracle sql语言模糊查询--通配符like的使用相关推荐

  1. oracle sql语言模糊查询--通配符like的使用教程

    在Where子句中,可以对datetime.char.varchar字段类型的列用Like子句配合通配符选取那些"很像..."的数据记录,以下是可使用的通配符: %   零或者多个 ...

  2. Oracle sql语言模糊查询--like后面的通配符

    关于like后面的条件,Oracle提供了四种匹配模式: 1,% :表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FR ...

  3. 判断题:oracle自带的sql语言环境是pl/sql,习题库简介

    Ⅰ 数据库练习题 答案如下: Ⅱ 数据库练习题 (1)查询教师号来为T1老师教授自课程的课程号和课程名. SELECT TC.CNo,C.CN FROM T left join TC on t.TNo ...

  4. 如何使用SQL进行模糊查询

    SQL语句--模糊查询 执行数据库查询时,有完整查询和模糊查询之分. 一般模糊语句格式如下: SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件; 其中,关于条件,SQL提供了四种匹 ...

  5. Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项

    Mybatis映射文件SQL语句模糊查询 1. "%"#{value}"%" 在参数中不需要添加 %_ 推荐使用 2. '%${value}%' 在参数中不需要 ...

  6. java的sql的like_[Java教程]SQL like 模糊查询, in

    [Java教程]SQL like 模糊查询, in 0 2018-09-14 11:00:38 ​[{"互联网":["网络媒体","微博", ...

  7. 数据库实验4 SQL语言-SELECT查询操作

    数据库实验4 SQL语言-SELECT查询操作 1.首先按照第三章的jxgl数据库的模板创建jxgl数据库并插入数据: 创建数据库jxgl: create database jxgl; 创建相应的表: ...

  8. 实验二 SQL 语言——SELECT 查询操作(第一部分)

    SQL 语言--SELECT 查询操作 实验目的: -了解查询的概念和方法:-掌握 SQL Server 集成管理器查询子窗口中执行 SELECT 操作的方法:-掌握 SELECT 语句在单表查询中的 ...

  9. sql中模糊查询的字段中包含百分号%的语句

    sql中模糊查询的字段中包含百分号%的语句: select * from 表名 where 字段 like '%\%%' ESCAPE '\'; Mysql里用\%,比如: select * from ...

最新文章

  1. linux用光盘作yum源实验步骤,Linux使用系统光盘作为YUM源
  2. 作者:​冯景华(1984-),男,国家超级计算天津中心主任助理、系统管理部部长。...
  3. json与jsonp应用及其他ajax数据交互方式
  4. 4周第4次课 压缩打包介绍 gzip bzip2 xz压缩工具
  5. 打印机驱动是什么,打印机驱动有什么用,一定要安装打印机驱动吗
  6. knx智能照明控制系统电路图_智能照明控制系统(KNX)教材
  7. 分区桌面背景制作方法-EXCEL
  8. java opencv 提取车牌_OpenCV实现车牌字符分割(C++)
  9. Cocos2d-x 3.x基础学习: 拖尾渐隐效果MotionStreak
  10. C语言中的常量与变量
  11. java实现移位密码的加密
  12. Java表的设计合同_java毕业设计_springboot框架的基于合同管理系统
  13. EDI助力物流行业整合供应链
  14. EditText相关设置
  15. 全栈开发必看书籍整理及推荐(精选)
  16. Netconf资料收集
  17. 初学者学习深度学习,不得不会的Google Colab基本操作
  18. Angular4 - 共享模块
  19. NAS 详细搭建方案 - 安装Ubuntu Server
  20. 数据库扩容也可以如此丝滑,MySQL千亿级数据生产环境扩容实战

热门文章

  1. H5调用手机发短信和打电话功能
  2. 华为交换机配置SNMP
  3. 前端复习大纲-CSS03
  4. 犀利又逗B,幽默的有点狠
  5. Redis入门笔记(1)(lrange用法)
  6. html5 iframe 无法滚动条,【HTML5】iframe滚动条问题
  7. Ubuntu关机与重启
  8. 纯css DIV弹出动画
  9. Keras源码学习笔记
  10. SQL性能优化15个小技巧