SQL Server特殊符号的转义(特殊符号转义 和 使用万能关键词ESCAPE转义) |
您所在的位置:网站首页 › 特殊字符转义处理怎么用 › 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操作,需要进⾏以下替换(注意顺序也很重要) [ -> [[] (这个必须是第⼀个替换的!!) % -> [%] (这⾥%是指希望匹配的字符本⾝包括的%⽽不是专门⽤于匹配的通配符) _ -> [_] ^ -> [^] ------------------------------------------------------------------------------------------------------------------------------
·
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |