通配符

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

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

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

posted @ 2008-11-14 10:32  Devil_Zhang  阅读(373)  评论(0编辑  收藏  举报