A2008A

一、搜索通配符字符的说明

可以搜索通配符字符。有两种方法可指定平常用作通配符的字符:

    * 使用 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

分类:

技术点:

相关文章: