通配符
一、搜索通配符字符的说明
可以搜索通配符字符。有两种方法可指定平常用作通配符的字符:
* 使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'
在上述 LIKE 子句中,前导和结尾百分号 (%) 解释为通配符,而斜杠 (/) 之后的百分号解释为字符 %。
* 在方括号 ([ ]) 中只包含通配符本身。要搜索破折号 (-) 而不是用它指定搜索范围,请将破折号指定为方括号内的第一个字符:
WHERE ColumnA LIKE '9[-]5'
下表显示了括在方括号内的通配符的用法。
符号 | 含义 |
---|---|
LIKE '5[%]' | 5% |
LIKE '5%' | 5 后跟 0 个或更多字符的字符串 |
LIKE '[_]n' | _n |
LIKE '_n' | an, in, on (and so on) |
LIKE '[a-cdf]' | a, b, c, d, or f |
LIKE '[-acdf]' | -, a, c, d, or f |
LIKE '[ [ ]' | [ |
LIKE ']' | ] |
二、实例说明:
在表PersonalMember中查找strloginname字段中含有"["的记录。
可用三条语句:
1、
select strloginname,* from PersonalMember where strloginname like '%[%' escape ''
2、(说明"\"与"/"均可与escape关键字结合作为转义符)
select strloginname,* from PersonalMember where strloginname like '%/[%' escape '/'
3、
select strloginname,* from dbo.PersonalMember where charindex('[',strloginname)>0
4、
select strloginname,* from dbo.PersonalMember where strloginname like '%[[]%'
--------------------------------------------------------------------------------------------
通配符 说明
_ 与任意单字符匹配
% 与包含一个或多个字符的字符串匹配
[ ] 与特定范围(例如,[a-f])或特定集(例如,[abcdef])中的任意单字符匹配。
[^] 与特定范围(例如,[^a-f])或特定集(例如,[^abcdef])之外的任意单字符匹配。
例子:
• WHERE FirstName LIKE '_im' 可以找到所有三个字母的、以 im 结尾的名字(例如,Jim、Tim)。
• WHERE LastName LIKE '%stein' 可以找到姓以 stein 结尾的所有员工。
• WHERE LastName LIKE '%stein%' 可以找到姓中任意位置包括 stein 的所有员工。
• WHERE FirstName LIKE '[JT]im' 可以找到三个字母的、以 im 结尾并以 J 或 T 开始的名字(即仅有 Jim 和 Tim)
• WHERE LastName LIKE 'm[^c]%' 可以找到以 m 开始的、后面的(第二个)字母不为 c 的所有姓。
---------------------------------------------------------------------------------------------------------
具体详情请参考:http://msdn.microsoft.com/zh-cn/library/ms187489.aspx