SQL Server:SQL Like 通配符特殊用法:Escape

摘要:
SQLServer:SQLLike通配符特殊用法:Escape%:匹配零个或多个任意字符;_:匹配任何单个字符;[]:匹配范围;[^]:排除范围SymbolMeaninglike“5[%]”5%like“[_]n”_ nlike“[a-cdf]'a,b,c,d,或flike”[-acdf]'-,a,c,d,或flike'[[]”[like“]”]like“abc[_]d%”abc_ dandabc_Delike“abc[def]”abcd,abce,and bcflike“[^1-9]”0like“[^1-9b-z]'0,a对于字符串中出现的特殊字符:“%”,“[”,“]”,'_'您可以使用'[]'来包含它们,使得它们被视为匹配模式中的普通字符。最后,看一个更复杂的匹配select1其中“[^a-Z]ABCD E'like”[^a-Z]%'scape“”

 SQL Server:SQL Like 通配符特殊用法:Escape

  %:匹配零个及多个任意字符; _:与任意单字符匹配; []:匹配一个范围; [^]:排除一个范围

SymbolMeaning
like '5[%]'5%
like '[_]n'_n
like '[a-cdf]'a, b, c, d, or f
like '[-acdf]'-, a, c, d, or f
like '[[]'[
like ']']
like 'abc[_]d%'abc_d and abc_de
like 'abc[def]'abcd, abce, and abcf
like '[^1-9]'0
like '[^1-9b-z]'0, a

对于字符串中出现的特殊字符:'%','[','[]', '_' 可以使用 '[]' 把它们包含起来, 这样在匹配模式(pattern)中,它们就被当作普通字符对待了。

1. 用 like '[[]' 匹配特殊字符 '['

select 1 where '[ABCDE' like '[[]%'

2. 用 like ']' 匹配特殊字符 ']'

select 1 where ']ABCDE' like ']%'

3. 用 like '[[]]' 匹配特殊字符 '[]'

select 1 where '[]ABCDE' like '[[]]%%'

4. 用 like '[_]' 匹配特殊字符 '_'

select 1 where '_ABCDE' like '[_]%'

5. 用 like '[%]' 匹配特殊字符 '%'

select 1 where 'ABC%DE' like 'ABC[%]DE'

对于其他的特殊字符:'^', '-', ']' 因为它们本身在包含在 '[]' 中使用,所以需要用另外的方式来转义,于是就引入了 like 中的 escape 子句,另外值得注意的是:escape 可以转义所有的特殊字符。

select 1 where '^ABCDE' like '!^ABCDE' escape '!' select 1 where '-ABCDE' like '!-ABCDE' escape '!' select 1 where ']ABCDE' like '!]ABCDE' escape '!'  select 1 where '%ABCDE' like '\%ABCDE' escape '\' select 1 where '%ABCDE' like '!%ABCDE' escape '!' select 1 where '%ABCDE' like '#%ABCDE' escape '#' select 1 where '%ABCDE' like '@%ABCDE' escape '@'  select 1 where '[ABCDE' like '![ABCDE' escape '!' select 1 where ']ABCDE' like '!]ABCDE' escape '!' 

看出规律了吧,就是用 escape 后面紧跟着的字符来做转义字符。 escape 后面的字符相当于 C 语言字符串中的转义字符 '\'。

最后,看一个更加复杂的匹配

select 1 where '[^A-Z]ABCDE' like '\[\^A\-Z\]%' escape '\'
SQL Server:SQL Like 通配符特殊用法:Escape第1张

免责声明:文章转载自《SQL Server:SQL Like 通配符特殊用法:Escape》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇appium---命令行启动appiumjava的四种引用,强弱软虚和jvm优化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle11g温习-第七章:redo日志

2013年4月27日 星期六 10:33 1、redo (重做) log 的功能:用于数据恢复 2、redo log 特征: 【特征】: 1) 记录数据块的变化(DML、DDL) 2) 用于数据块的recover 3) 以组的方式管理redo file ,最少两组redo ,循环使用 4) 和数据文件存放到不同的磁盘上,需读写速度快的磁盘(比...

Objective-C学习--字符串

C语言将字符串作为简单地字符数组处理,并且在数组最后添加尾部零字符作为结束标志。而Cocoa中的NSString则有很多内置方法,他们让字符串的处理变得简单很多 1. 创建字符串    NSString的stringWithFormat:方法 +(id) stringWithFormat:(NSString *) format, ...;//省略号表示这个...

oracle 的用户管理 sqlplus的常用命令

创建用户:create user 用户名 identified by 密码; SQL> create user scw identified by 123; 用户已创建。 SQL> 在oracle中创建用户只能由管理员或者具有管理员的权限的用户创建 修改密码: 1.修改自己的密码: SQL> passw; 更改 SCW 的口令 旧口令...

oracle事务和锁

数据库事务概括 1. 说明   一组SQL,一个逻辑工作单位,执行时整体修改或者整体回退。 2.事务相关概念   1)事务的提交和回滚:COMMIT/ROLLBACK   2)事务的开始和结束     开始事务:连接到数据库,执行DML、DCL、DDL语句     结束事务: 1. 执行DDL(例如CREATE TABLE),DCL(例如GRANT),系统...

06 django视图层

视图层   视图就是一个函数,请求过来后要做什么事情都在这个函数里,也就是具体处理请求的功能。   熟练掌握两个视图层对象:请求对象(request)和响应对象(HttpResponse)。 HttpRequest对象 1 from django.shortcuts import render,redirect,HttpResponse 2 from...

MyBatis

为什么使用mybatis: 在知道为什么使用mybatis之前,我们先了解java如何进行jdbc访问数据库的。第一是从连接池取出或者自己创建Connection对象,第二是从Connection对象中创建出Statement对象,第三,根据Statement对象去执行SQL语句,第四,获取执行SQL语句的返回结果并处理,第五,关闭数据库。在这几个步骤中,...