SQL Server特殊符号的转义(特殊符号转义 和 使用万能关键词ESCAPE转义)

365bet备用器 📅 2025-09-23 08:50:37 ✍️ admin 👀 6287 ❤️ 619
SQL Server特殊符号的转义(特殊符号转义 和 使用万能关键词ESCAPE转义)

SQL Server特殊的符号转义(特殊符号转义 和 使用万能关键词ESCAPE转义)

1.在like语句中,使用[] 和 使用Escape 来转义:

特殊符号A类(如% [ [] _,用[]包括起来):

对于特殊字符'%','[','[]', '_' 可以使用 '[]' 把它们包含起来:

select * from [dbo].[Locations] where [state] like '%[%]%'select * from [dbo].[Locations] where [city] like '%[[]]%'

特殊符号B类(如^ ] -,额外用万能关键字escape 指出来):

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

另外值得注意的是:escape 可以转义所有的特殊字符:

select * from [dbo].[Locations] where [city] like '%Beijing]%' escape ']' --将]识别为普通字符--SQLServer查询的结果是:[city]列中 含Beijing]字符串的所有数据

/* LIKE后跟的 万能转义关键字:escape */select * from [tableX] where [columnX] LIKE 'AB&%' ESCAPE '&' --将&识别为普通字符--SQLServer查询的结果是:[columnX]列中结尾是AB&字符串的所有数据

2.使用两个符号作转义(如:单引号' ):

默认情况下,单引号 '是字符串的边界符, 如果在字符串中包含', 则必须使用两个单引号'。第1个'就是转义符:

select * from [dbo].[Locations] where [city] like '%''%' --两个字符,将特殊符号转为普通字符 --SQLServer查询的结果是:[city]列中包含是'字符串的所有数据

上方两个百分号中间的单引号(蓝色背景的),第一个是转义符,第二个是需要查询的条件' 。

select replace('abcdefg''','''','!') --这个语句是为了把字符串{abcdefg'}里面的{'}替换成{!},所以SqlServer查询的结果是{abcdefg!}

上方蓝色背景的两对单引号,分别都是为了转换为字符串内的一个单引号。( '' ==>' ) replace括号里的三个参数都用引号包含(三个外层引号),与属于字符串部分的引号互不干扰。

------------------------------------------------------------------------------------------------------------------------------

在实际项⽬中,发现对于like操作还有以下特殊字符:下划线“_”,百分号“%”,⽅括号“[]”以及尖号“^”。

其⽤途如下:

下划线(_):⽤于代替⼀个任意字符(相当于正则表达式中的 ? )

百分号(%):⽤于代替任意数⽬的任意字符(相当于正则表达式中的 * )

⽅括号([]):⽤于转义(事实上只有左⽅括号⽤于转义,右⽅括号使⽤最近优先原则匹配最近的左⽅括号)

尖号(^):⽤于排除⼀些字符进⾏匹配(这个与正则表达式中的⼀样)

以下是⼀些匹配的举例,需要说明的是,只有like操作才有这些特殊字符,=操作是没有的。

a_b... a[_]b%

a%b... a[%]b%

a[b... a[[]b%

a]b... a]b%

a[]b... a[[]]b%

a[^]b... a[[][^]]b%

a[^^]b... a[[][^][^]]b%

在实际进⾏处理的时候,对于=操作,我们⼀般只需要如此替换:

' -> ''

对于like操作,需要进⾏以下替换(注意顺序也很重要)

[ -> [[] (这个必须是第⼀个替换的!!)

% -> [%] (这⾥%是指希望匹配的字符本⾝包括的%⽽不是专门⽤于匹配的通配符)

_ -> [_]

^ -> [^]

------------------------------------------------------------------------------------------------------------------------------

·

相关推荐

bt365最快线路检测 世界杯早报|上半区两场1/4决赛均上演点球大战,克罗地亚与阿根廷携手晋级
365bet备用器 本田XR-V车展

本田XR-V车展

📅 07-21 👀 1435
365彩票app下载2020 亲测两通一达(圆通申通韵达)最真实的时效,哪家速度比较快?我朋友在越秀区小北, 拼多多 买了5个快递,都是床单被套之类(...
365彩票app下载2020 龙珠:弗利萨一族共六位角色,除了弗罗斯特其他人都是亲戚
365彩票app下载2020 华为设备DNS配置命令

华为设备DNS配置命令

📅 07-19 👀 4336
365bet备用器 圣菲之美(SOANFEIME) 澳蔓菲植萃凝露大套组48支
365彩票app下载2020 聚宝阁-角色购买

聚宝阁-角色购买

📅 07-06 👀 3883
365bet备用器 可以养后宫的游戏有哪些 2024有趣的后宫养成游戏大全
bt365最快线路检测 悦动圈能赚多少钱

悦动圈能赚多少钱

📅 07-03 👀 3345

友情伙伴