`

SQL语句中的通配符使用技巧(ESCAPE定义转义字符)

阅读更多
今天老大在讲课的时候碰到一个问题
他在演示如何手动备份库时,想选出系统中以'_HIS'结尾的表
输入SQL语句如下

select * from obj where object_type='TABLE' and object_name like '%_HIS';

对这条SQL语句有必要说明一下,obj是该用户下的所有对象(已经以某用户身份登录),object_type='TABLE'是设置一个过滤类型,将所有对象类型是表的过滤出来,然后object_name则是根据对象名进行过滤

结果有一张表是没有下划线'_'但是以HIS结尾的,也在结果输出
最后只好将以'_HIS'结尾的表一个个写在not in()里来过滤
数据库是使用ORA

LIKE关键字共有四种通配符。“%”代表“包含0个或更多字符的任意字符串”;“_”代表“任何单个字符”;“[]”代表“指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符”;“[^]”代表“不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符”。
从以上可以看出,其实'%_HIS'和'%HIS'是等效的

那时我们都没有想起来Oracle的escape关键字,这个关键字可以定义转义字符,escape定义的转义字符后第一个字符就是想转义的内容

举个例子,比如我想定义'/'为转义字符,来将通配符'_'变为普通字符
select * from obj where object_type='TABLE' and object_name like '%/_HIS' escape '/';

这样子就可以了。


【附注】:
  在mysql中,'\'是转义字符,所以在mysql中可以直接这样写
select * from obj where object_type='TABLE' and object_name like '%\_HIS';


----------------------------20090813-------------------------------
如果使用ORA的一些函数也可以达到效果,如
select object_name from obj where object_type='TABLE' and  instr(UPPER(object_name),'_HIS')>0;

----------------------------20090922-------------------------------
还有一个instr的函数可以达到效果
select object_name from obj where object_type='TABLE' and instr(UPPER(object_name),'_HIS')<>0;
分享到:
评论

相关推荐

    SQL中使用ESCAPE定义转义符详解

    主要介绍了SQL中使用ESCAPE定义转义符的相关资料,需要的朋友可以参考下

    SQL中查询中使用通配符

    SQL中查询中使用通配符,VC完美实现,免费共享。

    浅谈MySQL模糊查询中通配符的转义

    sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符。如果我们想要模糊查询带有通配符的字符串,如“60%”,“user_name”,就...

    Linux Shell 通配符、元字符、转义符使用实例介绍.docx

    Linux Shell 通配符、元字符、转义符使用实例介绍.docx

    SQL语句查询助手

    SQL语句查询助手 方便查询简单的sql命令 sql通配符 省去您麻烦的记忆 真正做到想用就用 本软件耗费本人一天时间 就要三个资源分吧 请大家谅解 谢谢大家的支持

    SQL Server 2005 通配符及其意义

    SQL Server 2005 通配符及其意义 和 使用通配符的例子

    SQL语言中使用的通配符

    sql语言中使用的通配符介绍和说明,来源于网上,引用而已

    sql server数据库模糊查询语句

    部分内容“sql server数据库模糊查询语句, ...[ ] 通配符的示例。...使用 ESCAPE 关键字定义转义符 ”

    sql语句性能调整原则

    SQL语句调整原则,涉及SQL语句编写注意问题,带通配符(%)的like语句,选择最有效率的表名顺序,减少访问数据库的次数

    带通配符的字符串匹配算法

    带通配符的字符串匹配算法,带通配符的字符串匹配算法

    Sql 语句详解

    12. SQL 通配符 16 13. SQL IN 操作符 18 14. SQL BETWEEN 操作符 18 15. SQL Alias(别名) 19 16. SQL JOIN 20 17. SQL INNER JOIN 关键字 22 18. SQL LEFT JOIN 关键字 23 19. SQL RIGHT JOIN 关键字 24 20. SQL ...

    字符串/通配符匹配(C++)

    C++实现字符串匹配函数,匹配中可以包括通配符

    WPS通配符使用及汉字替换技巧.docx

    WPS 通配符使用全局替换,WPS 中文匹配,WPS正则使用

    SQL查询语句通配符与ACCESS模糊查询like的解决方法

    SQL Server中的通配符为:% 与任何个数的字符匹配_ 与单个字符匹配正文我今天在写个页面的时候,也很郁闷,表中明明有记录,但在ASP里就是搜索不到,理论的sql语句如下:Select * FROM t_food Where t_food.name ...

    T-SQL 高级语句

    T-SQL高级语句 SQL TOP 子句 SQL LIKE 操作符 SQL 通配符 SQL IN 操作符

    SQL Server中通配符的使用示例

    主要介绍了SQL Server中通配符的使用示例,本文给出多个示例来讲解通配符的使用方法,需要的朋友可以参考下

    SQL 通配符

    在 SQL 中,通配符与 SQL LIKE 操作符一起使用。 SQL 通配符用于搜索表中的数据。 在 SQL 中,可使用以下通配符: 通配符 描述 % 替代 0 个或多个字符 _ 替代一个字符 [charlist] 字符列中的任何单一字符 ...

    精通sql结构化查询语句

    9.3.4 在内连接中使用聚合函数 9.4 外连接 9.4.1 左外连接 9.4.2 右外连接 9.4.3 全外连接 9.4.4 在外连接中使用聚合函数 9.5 交叉连接 9.5.l 交叉连接的定义 9.5.2 交叉连接举例 9.6 多表连接的综合应用 9.6.1 内...

    SQL 通配符DOC版

    SQL 通配符 在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。 SQL 通配符必须与 LIKE 运算符一起使用。

Global site tag (gtag.js) - Google Analytics