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

 


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

Symbol Meaning 
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 '\'

 

后记:用过正则表达式的朋友应该都知道,在正则表达式里可以用*表示匹配0次或是多次, [\u4e00-\u9fa5]这个可以匹配中文,但在这里我没有发现类似的功能,所以匹配一些复杂的语句就比较头疼。如我要匹配形如:印张数量*单价、200+印张数量*单价、印张数量,但不匹配形如:印张数量5*单价、印张数量6767、55印张数量uu的数据就很难实现了。

下面这个就是要匹配包括“纺梦”这两个字,但这两个字只能是与“+-*/”这四个字符相连或是单独存在。如果这里的“纺梦”是任意中文字符就没办法去处理了。

复制代码
create table #tbl(n int,v nvarchar(100))
insert into #tbl select 1,'1+纺梦1+2' union select 2,'1+纺梦+1' union select 3,'纺梦' union select 4,'纺梦+1'select * from #tbl 
where (v like '%[+\-*/]纺梦[+\-*/]%' ESCAPE '\')or (v like '纺梦[+\-*/]%' ESCAPE '\') or (v like '%[+\-*/]纺梦' ESCAPE '\')or (v = '纺梦')--select * from #tbl
drop table #tbl
复制代码

 

转载于:https://www.cnblogs.com/yangmingyu/p/6928209.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

案例篇-HBase RowKey 设计指南

1.为什么 Rowkey 这么重要 1.1 RowKey 到底是什么 我们常说看一张 HBase 表设计的好不好,就看它的 RowKey 设计的好不好。可见 RowKey 在 HBase 中的地位。那么 RowKey 到底是什么?RowKey 的特点 如下: 类似于 MySQL、Oracle 中的主键,用于标示唯一的行…

PCIe简介及引脚定义

随着现代处理器技术的发展,在互连领域中,使用高速差分总线替代并行总线是大势所趋。与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而使用更少的信号线,完成之前需要许多单端并行数据信号才能达到的总线带…

IDEA下搜狗输入法输入中文时卡着不动的参考解决方法

【问题描述】 在IntelliJ IDEA工具的java编辑窗口,给代码增加注释时发现,输入中文时,搜狗输入法界面不动,只显示第一个字母。如图: 我想输入“根据”两个字,但搜狗输入法界面一直卡着不刷新,导…

6U VPX板卡资料:6U VPX 高性能计算存储板卡

6U VPX板卡资料:6U VPX 高性能计算存储板卡_hexiaoyan827的博客-CSDN博客_vpx板卡

Android: Custom View和include标签的区别

Custom View&#xff0c; 使用的时候是这样的&#xff1a; <com.example.home.alltest.view.MyCustomViewandroid:id"id/customView"android:layout_width"match_parent"android:layout_height"wrap_content"></com.example.home.allte…

七 web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术、设置用户代理...

如果爬虫没有异常处理&#xff0c;那么爬行中一旦出现错误&#xff0c;程序将崩溃停止工作&#xff0c;有异常处理即使出现错误也能继续执行下去 1.常见状态吗 301&#xff1a;重定向到新的URL&#xff0c;永久性302&#xff1a;重定向到临时URL&#xff0c;非永久性304&#x…

DVI和HDMI中的TMDS接口协议

TMDS&#xff08;Transition Minimized Differential signal&#xff09;&#xff0c;即过渡调制差分信号&#xff0c;也被称为最小化传输差分信号&#xff0c;是指通过异或及异或非等逻辑算法将原始信号数据转换成10位&#xff0c;前8为数据由原始信号经运算后获得&#xff0c…

君子眼中皆好人

从前有个国王&#xff0c;在晚年时思量 着&#xff1a;“我有两个儿子&#xff0c;我应该把王位传给哪个儿子来统治这个国家呢&#xff1f;”国王决定考验一下他的两位王子&#xff0c;哪位最是忠义仁厚&#xff0c;爱护老百姓的明君。国王叫来长子&#xff0c; 对他说&#xf…

GS使用HTTPS登录的设置过程

1. Windows 增加角色服务 服务器配置管理器&#xff0c; 添加角色服务 增加角色功能里面有&#xff1a; 证书颁发机构 证书颁发机构 web注册 2. AD CS配置 主要是next操作 独立ca 根证书 等 3. inetmgr申请证书 在机器名的一层及上面申请证书 保存证书信息 用来使用CA机构进行签…

TMDS的信号通道

1 TMDS的信号通道&#xff1a; 1个HDMI包括3个TMDS数据通道和1个TMDS时钟通道。 . 每一个TMDS时钟周期内&#xff0c;TMDS数据通道上会发送一个10位的字符信息&#xff1b; . 每个TMDS时钟周期内&#xff0c;编码器将2位的控制数据、4位的报数据或者8位的视频数据采取不同 …

[luoguP2774] 方格取数问题(最大点权独立集)

传送门 引入两个概念&#xff1a; 最小点权覆盖集&#xff1a;满足每一条边的两个端点至少选一个的最小权点集。 最大点权独立集&#xff1a;满足每一条边的两个端点最多选一个的最大权点集。 现在对网格染色&#xff0c;使得相邻两点颜色不同&#xff0c;之后把两个颜色的点分…

docker入门之容器网络

docker入门之容器网络首发&#xff1a;arppinging.com一、网络命名空间1&#xff09;IP命令2&#xff09;实例二、网络模型三、容器中常见的网络操作1&#xff09;指定网络模式2&#xff09;指定容器的dns地址和hosts解析四、网桥配置一、网络命名空间1&#xff09;IP命令查看i…

光谱分布、光谱辐射通量密度与不同时间段分布光谱(图示)

1、光谱分布图 2 太阳辐射能量图 3、不同时间段的太阳分布光谱图 4、不同波长的光的能量分布主要区域 5、不同波段的使用场景

$.ajax()方法详解

相关链接&#xff1a;http://blog.csdn.net/denghejing/article/details/41087581转载于:https://www.cnblogs.com/Steven5007/p/8191275.html

【从零开始】Python字符串的操作方法

1. 字符串长度 #strlen(str)       # 字符串长度函数名str apples    # 把字符串 "apples" 赋值给变量 strprint (len(str))      # 打印字符串的长度 2. 查找字符 #strchr(str1,str2)      # 查找字符函数名str1 apples      …

SQL工厂法

表結構&#xff1a; exeno caption params sqlcommand tablename 201 登錄 loginname ftsring(20) select * from user where loginname:loginname user //autho…

基于深度学习和传统算法的人体姿态估计,技术细节都讲清楚了

计算机视觉的一大研究热点是人体姿态估计&#xff0c;还有很多问题急需解决&#xff0c;比如遮挡&#xff0c;交互等等。在最近的CVPR2020里边也有很多这方面的工作。本文站长主要是想谈谈基于深度学习的实时多人姿态估计。 人体姿态估计要干嘛&#xff1f; 关于人类活动规律的…

一些linux知识和http知识

一些linux知识和http知识 1 yum安装比源码编译安装 有的模块不能自定义安装 只能安装默认的模块进行安装 2 关于php的fastcgi 如果使用fastcgi 那么需要启动服务 如果不使用fastcgi 那么不需要启动这个服务 3 一个完整的HTTP解析路径 用户浏览器比如访问www.123.com/index.…

杨浦区阜盛农民工子弟小学见闻

天气有些阴沉&#xff0c;起了个大早&#xff0c;一个小时奔波后来到了这里…… 大门口&#xff1a; 校领导&#xff1a; 有些破旧的校舍和阴沉的天空下祖国的希望&#xff1a; 同上&#xff0c;希望…… 期待的目光&#xff1a; 顽皮的笑脸&#xff0c;排着队也要调皮&#xf…

《构建之法》7

十五章讲的是稳定和发布阶段。软件生命周期的最后阶段往往是最考验团队的。从代码完成到最终发布软件&#xff0c;需要经历&#xff1a;完成代码、集成测试、Bug修复、Alpha发布、DCR Bug修复、Beta发布、外部测试、RTO等。软件团队的各个角色代表&#xff0c;组成会诊小组。对…