`

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定义转义符详解

    `ESCAPE`关键字允许我们在`LIKE`语句中定义一个转义字符,使得这个字符后面跟着的特殊字符不被解析为通配符,而是当作普通的文本字符进行匹配。这在处理包含通配符字符的数据时非常有用。 例如,假设我们有一个名为...

    SQL语言中使用的通配符

    在SQL语句中可以在查询条件的任意位置放置一个%来代表一个任意长度的字符串。例如,在查询用户名以"M"开头的用户时,可以使用like 'M%'语句来实现。 3. "[]"通配符 "[]"通配符在模式查询中可以利用来实现查询一定...

    ibatis sql语句对条件中特殊字符% # 处理

    通过对ibatis框架下SQL语句中特殊字符处理方法的详细分析,我们可以看到,合理地使用字符串转义处理结合动态SQL标签,可以有效地解决特殊字符带来的问题。这样不仅可以保证查询的准确性,还可以提高代码的健壮性和...

    sql server数据库模糊查询语句

    3. ESCAPE 关键字:ESCAPE 关键字用于定义转义符,以便在搜索字符串时将通配符作为普通字符使用。 下面是一些使用 LIKE 关键字和通配符的示例: * WHERE title LIKE '%computer%':查找书名中包含单词 computer 的...

    浅谈Transact—SQL语句中LIKE的高级应用.pdf

    Transact-SQL语句是微软SQL Server数据库管理系统中使用的SQL语言的扩展版本,它为数据库操作提供了丰富多样的语句和函数。其中,LIKE关键字用于在WHERE子句中进行模式匹配,是模糊查询时常用的功能,可以配合通配符...

    ORACLE SQL 语句(典型应用总结).pdf

    使用`ESCAPE`关键字来指定一个转义字符,使得特殊字符可以在`LIKE`子句中被正确解释。例如: ```sql SELECT * FROM table_name WHERE column LIKE 'pattern\_%' ESCAPE '\'; ``` 这里的反斜杠`\`就是转义字符。 ###...

    解析Microsoft Sql Server中的like语句

    5. **转义字符**:如果你的模式中包含了SQL Server的通配符或特殊字符,你可以使用`ESCAPE`关键字指定一个转义字符,这样就可以在模式中使用这些特殊字符。例如,如果你的模式是`'%_abc%'`,而你希望匹配实际字符串...

    php中转义mysql语句的实现代码

    该函数会转义SQL语句中使用的字符串中的特殊字符,例如单引号和双引号,并考虑到当前字符集。然而,需要注意的是,`mysql_real_escape_string()`函数并不会转义SQL中的通配符字符`%`和`_`。 使用`mysql_real_escape...

    Oracle_学习使用SQL语句

    Oracle SQL语句是数据库开发中的基础工具,它用于在Oracle数据库中进行数据查询、更新、删除等操作。本文主要探讨了几个重要的SQL概念和...在实际应用中,还应结合具体的业务需求和性能优化技巧,灵活运用这些SQL语句。

    sqlserver -like

    当需要在`LIKE`语句中匹配特殊字符,如`%`或`_`时,可以使用`ESCAPE`关键字来定义一个转义字符。这样,任何紧跟在转义字符后面的特殊字符都将被视为普通文本字符。例如: - `LIKE '%30!%%' ESCAPE '!'`:这里`!`是...

    SQLLIKE用法.docx

    在 LIKE 操作符中,可以使用 ESCAPE 关键字定义转义符,以便在字符串中搜索通配符而不是将其作为通配符使用。例如: SELECT * FROM finances WHERE description LIKE '%5/%%' ESCAPE '/' 这条语句将查询包含字符串...

    Oracle数据库Sql语句详解大全.pdf

    在使用LIKE进行模式匹配时,如果通配符本身出现在模式中,需要使用ESCAPE关键字来转义该字符。例如,查询以`s_`开头的表名: ```sql SELECT table_name FROM user_tables WHERE table_name LIKE 'S\_%' ESCAPE '\';...

    SQL使用Like模糊查询

    为了解决这个问题,可以使用`ESCAPE`关键字定义一个转义字符。例如,如果你的模式中需要包含实际的百分号,可以这样写: ```sql SELECT name FROM customers WHERE name LIKE '10%OFF' ESCAPE '\'; ``` 在这里,`\`...

    基于sqlite特殊字符转义的实现方法

    在实际应用中,当我们构建SQL查询语句时,比如`SELECT * FROM table WHERE number LIKE '%/%%' ESCAPE '/'`,`LIKE`操作符后面的`'%/%%'`就是一个已经转义过的字符串,其中`%`被转义为`/%`,并且使用`ESCAPE '/'`来...

    sql 语句的用法示例

    - `LIKE 'd_\_%' ESCAPE '\'`:使用转义字符匹配特定模式。 #### 五、SQL 语法要点 - **比较运算符**:`=`, `!=`, `, `&gt;`, `, `&gt;=` - **逻辑运算符**:`AND`, `OR`, `NOT` - **范围匹配**:`BETWEEN ... AND ...`...

    sql字符串经典、sql语句经验共享

    - **`escape`**:用于转义通配符,使得通配符被视为普通字符。 ### 日期时间函数 #### 18. **`getdate()`** - **功能**:返回当前系统日期和时间。 - **示例**:`SELECT getdate();` 返回的是当前的日期和时间。...

    SQL语句之条件查询-WHERE(where).docx

    `LIKE`关键字还可以与`ESCAPE`配合使用,定义转义字符,如在以下查询中,`_`被视为普通字符: ```sql SELECT * FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$'; ``` `BETWEEN AND`关键字用于范围查询,如...

Global site tag (gtag.js) - Google Analytics