SQL语句like子句中的转义符 [转载]

如果想在SQL LIKE里查询有下划线‘_‘或是‘%‘等值的记录,直接写成like ‘XXX_XX‘,则会把‘_‘当成是like的通配符。SQL里提供了 escape子句来处理这种情况,escape可以指定like中使用的转义符是什么,而在转义符后的字符将被当成原始字符,这和C里的‘\‘很像,但是escape要求自定义一个转义符,而不是指定了‘\’字符。如:

select * from user_all_tables where table_name like ‘YW__%‘ escape ‘_‘  
   含义是查出当前用户表下所有以‘YW_‘开头的表,其中第一个‘_‘是转义符,第二个是被转义的字符,等效可以写成:
select * from user_all_tables where table_name like ‘YW\_%‘ escape ‘\‘

时间: 2024-11-09 21:41:55

SQL语句like子句中的转义符 [转载]的相关文章

oracle中的转义符 - 在oracle中插入单引号与'&'

1.单引号 那么如果字段的内容中包含了单引号要怎么插入呢?例如:It's fine.方法同样有三·方法一:使用转义字符   SQL > Select 'test' || '''' from dual;   注意:这里的''''四个单引号是什么意思呢?首先第一个和最后一个都是Oracle中的字符串连接符,这个没有异议.那么第二个'和第三'又表示什么意思呢?第二个'是一个转义字符           第三个'才是我们真正的内容·方法二:同样是使用转义字符,只不过方式不同而已   SQL > Sel

SQL语句删除表中所有记录的方法

如何用一条sql语句删除表中的所有记录,这里分享下我的方法.参考链接: sql语句如何删除重复记录?四种方法 sql语句如何删除重复记录?教程详解 TRUNCATE TABLE删除表中的所有行,而不记录单个行删除操作. 语法TRUNCATE TABLE name 参数name 是要截断的表的名称或要删除其全部行的表的名称. 注释TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度

用sql语句导出oracle中的存储过程和函数

用sql语句导出oracle中的存储过程和函数: SET echo off ; SET heading off ; SET feedback off ; SPOOL 'C:/PRC.SQL' replace SELECT CASE WHEN LINE = 1 THEN 'CREATE OR REPLACE ' || TEXT WHEN LINE = MAX_LINE THEN TEXT || CHR(10 ) || '/' ELSE TEXT END FROM USER_SOURCE A LEF

Mybatis中如何在SQL语句表名中使用参数

insert into prefix_${table_name} (a, b, c) values (#{a}, #{b}, #{c}) ${} 表示直接使用字面量(literal value) #{} 表示这个是个参数 如果 table_name 是 "ABC" 则 ${table_name} 是 ABC #{table_name} 是 "ABC" Mybatis中如何在SQL语句表名中使用参数,布布扣,bubuko.com

SQL语句 在一个表中插入新字段

SQL语句 在一个表中插入新字段: alter table 表名 add 字段名 字段类型 例: alter table OpenCourses add Audio varchar(50)alter table ListenCourses add Audio varchar(50)

通信协议中的转义符

作用:在通信协议中用在协议中使得通信的内容更加安全可靠. 举例说明:假设现在需要定制一个通信协议,需要的最基本的就是一个帧头和帧尾的标志,因为通信的接收方才知道什么时候是通信的开始和结束.那么假设帧头(通信的开始)为0x02(也可以是其他),帧尾为0x03(也可以是其他),粗略的一看是没有问题的,但是试想如果在帧头和帧尾的中间数据出现0x02或者0x03的时候整个通信过程将会被破坏掉,因为本来一帧数据还没有传输完成,接收方误以为接收到帧头或者帧尾就会重新开始接收数据(导致前面已经接收的数据丢失)

SQL语句Left join 中On和Where的用法区别

SQL语句如下: SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.id = 表2.id AND 表2.Name != 'ff'WHERE 表1.NAME != 'aa' 步骤1:返回笛卡尔积(SELECT * FROM 表1 CROSS JOIN 表2) 步骤2:应用ON筛选器(当前的条件为  表1.id = 表2.id AND 表2.Name != 'ff') 步骤3:添加外部行 这一步只对OUTER JOIN起作用,如果是LEFT JOIN会以左边的表为保留表,如果是

Sql语句在SqlServer中创建数据库、表格并添加约束

通过Sql语句来创建数据库与架构 创建数据库 数据库的创建首先是要引用主数据库的,需要在master数据库的环境下进行创建.大致的语法如下: 1 -- 使用master数据库 2 use master 3 -- 创建数据库 4 create datebase [架构名.]数据库名 5 on [primary]--主文件数据描述 6 ( 7 name = '数据库逻辑名', --一般是数据库的名称 8 filename = '数据文件的名字',--全路径 9 size = 12mb, --数据文件

SQL语句查询关键字中含有特殊符号怎么处理, 例如 'SMI_'

SQL语句查询关键字中含有特殊符号怎么处理, 例如 'SMI_' 错误:select * from emp  where ename like '%SML_%' 正确:select * from emp  where ename like '%SML\_%' escape '\' SQL语句查询关键字中含有特殊符号怎么处理, 例如 'SMI_' 原文地址:https://www.cnblogs.com/brianlai/p/10325829.html