T-SQL 转义select …. like中的特殊字符(百分号)

众所周知,T-SQL中LIKE运算符使用%符号表示通配符。很多时候可能需要查询包含有%的数据,比如需要查询字段coupon中含有5%的数据。那么如何使用已经有百分号(%)符号的LIKE搜索字符串呢?

从MSDN中可以找到,Like 中的通配符包含有:


通配符


Description


示例


%


包含零个或多个字符的任意字符串。


WHERE title LIKE ‘%computer%‘ 将查找在书名中任意位置包含单词 "computer" 的所有书名。


_(下划线)


任何单个字符。


WHERE au_fname LIKE ‘_ean‘ 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。


[ ]


指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。


WHERE au_lname LIKE ‘[C-P]arsen‘ 将查找以 arsen 结尾并且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如 Carsen、Larsen、Karsen 等。 在范围搜索中,范围包含的字符可能因排序规则的排序规则而异。


[^]


不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。


WHERE au_lname LIKE ‘de[^l]%‘ 将查找以 de 开始并且其后的字母不为 l 的所有作者的姓氏。

那么该将通配符作为文字使用呢?

  1. 方法1 使用括号,比如75%
WHERE MyCol LIKE ‘%75[%]%‘

下表显示了几个使用 LIKE 关键字和 [ ] 通配符的示例。


符号


含义


LIKE ‘5[%]‘


5%


LIKE ‘[_]n‘


_n


LIKE ‘[a-cdf]‘


a、b、c、d 或 f


LIKE ‘[-acdf]‘


-、a、c、d 或 f


LIKE ‘[ [ ]‘


[


LIKE ‘]‘


]


LIKE ‘abc[_]d%‘


abc_d 和 abc_de


LIKE ‘abc[def]‘


abcd、abce 和 abcf

方法2 使用 ESCAPE 子句
SELECT *
FROM table
WHERE MyCol LIKE ‘%75!%%‘
ESCAPE ‘!‘
时间: 2024-11-02 22:42:48

T-SQL 转义select …. like中的特殊字符(百分号)的相关文章

SQL SERVER SELECT语句中加锁选项的详细说明 [转]

SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能.用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果. 本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明. 功能说明: NOLOCK(不加锁) 此选项被选中时,SQL Server 在读取或修改数据时不加任何锁. 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“

SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法

原文:SQL去除数据库表中tab.空格.回车符等特殊字符的解决方法 按照ASCII码, SELECT char(64) 例如64 对应 @,则 SELECT REPLACE('[email protected]', CHAR(64), 'kk'); 则结果为 abckkqq.com 依此类推, 去掉其他特殊符号,参考ASCII码对照表, 去掉tab符号为 select REPLACE('要替换的字符或列名',char(9),'替换的目标字符') 去掉空格符号为 select REPLACE('要

Javascript转义字符串中的特殊字符处理

2014-08-08 Web应用系统中,客户端发送请求到服务器,请求中的字符串参数,在被序列化成json过程中有些特殊字符会被空格代, 导致传递到服务器端再解析的时候,原本的输入参数就会被改变. 目前遇到的特殊字符有加号(+)与连接号(&). 临时解决方案: 前端:定义一个函数,在函数中预先处理, 1 function EncodeURIFilter(str) { 2 if(str != null && str != "") { 3 str = str.repl

将SQL for xml path('')中转义的字符正常显示

将SQL for xml path('')中转义的字符正常显示 在工作中出现的发送邮件的时候:因为邮件内容中有链接,并且多个拼接在一起的,于是用了for xml path().        但是,这样显示出来的链接时会将路径中的<,>,&符号转义为< > & 这样显示的路径在邮件中是不能进行链接的.         在网上查了很多资料后终于找到了一种方法:...FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)') 如下

递归方式的对变量中的特殊字符进行转义/去除转义

方法一:(循环) /********************************************************************工具类*******************************************     * 描述 : 深度加/删反斜杠     * 参数 :     *     &data : 指定替换的数组     *      func : addslashes(默认)=添加反斜杠, stripslashes=删除反斜杠     */   

SQL Injection-Http请求的参数中对特殊字符的处理

1.背景:最近学习webgoat到了SQL Injection的这一课,要完成这一课需要拦截Http请求,修改参数,不过在修改的参数中加入特殊字符才能完成.下面让我们一起来学习吧. 2.题目: 大致翻译一下题目:使用SQL注入的方式绕过认证.使用SQL注入的方式登录boss的账号Neville,而不是用正确的密码.验证Neville的档案可以被浏览,所有的功能都是可用的.(这些功能包括查询.创建和删除) 3.可是我怎么知道Neville的密码?......题目说了是SQL注入.那我们就开始吧.

sql的基础语句-select语句中出现的操作符号

2. select语句中出现的操作符号 2.1 合并操作符select a.ename||' '||to_char(sal) from emp a; 2.2 消除重复的行 select distinct deptno from emp; 2.3 空格.空串.null的区别 select ascii(' '),ascii(null),ascii('') from dual; 区别:  从显式上看,空串跟null在数据库中存储的值是一样的,但是NULL可以赋给任何数据类型,而空串只能赋给字符串类型

JAVA中过滤特殊字符预防SQL注入

package cn.com.hbivt.util; public class StringUtils { //过滤通过页面表单提交的字符 private static String[][] FilterChars={{"<","<"},{">",">"},{" "," "},{"\"","""},{&q

数据库查询中的特殊字符的问题

在进行数据库的查询时,会经常遇到这样的情况: 例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的字符,例如单引号,"|"号,双引号或者连字符"&". 例如他的名字是1"test,密码是A|&900 这时当你执行以下的查询语句时,肯定会报错: SQL = "SELECT * FROM SecurityLevel WHERE UID="" & UserID &