内置模式匹配提供了用于进行字符串比较的通用工具。 下表显示了可用于 Like 运算符的通配符及其匹配的位数或字符串数。
模式中的字符 () |
表达式中的匹配项 |
? 或 _(下划线) |
任何单字符 |
* 或 % |
零个或多个字符 |
# |
任意一位数字 (0 — 9) |
[charlist] |
字符列表中的任意单字符 |
[!charlist] |
不在字符列表中的任意单字符 |
可以使用包含一个或多个字符的组 (charlist) 括在方括号 ([ ]) 中,以匹配表达式中的任何单个字符 , 并且 charlist 可以包含 ANSI 字符集 中的几乎所有字符,包括数字。 可以使用括号 ([) 、问号 (?) 、数字符号 (#) 和星号 (*) 的特殊字符来直接匹配自己,仅当括在方括号中。 不能在组中使用右括号 ( ]) 来匹配自身,但可以在组外部将其用作单个字符。
除了括在括号中的字符的简单列表外, charlist 还可以通过使用连字符 ( ) 来分隔范围的上限和下限来指定字符范围。 例如,如果在 模式 中使用 [A-Z],则 表达式 中的相应字符位置包含 A 到 Z 范围中的任何大写字母,则会导致匹配。可以在括号中包含多个区域,而无需分隔区域。 例如,[a-zA-Z0-9] 匹配任何字母数字字符。
请务必注意,ANSI SQL 通配符 (%) 和 (_) 仅适用于 Microsoft Access 数据库引擎和 Access OLE DB 提供程序。 如果通过 Access 或 DAO 使用,它们将被视为文本。
模式匹配的其他重要规则包括:
-
charlist 开头的感叹号 (!) 表示如果在表达式中找到除 charlist 中的字符以外的任何字符,则会进行匹配。 在方括号外使用时,感叹号与自身匹配。
-
可以使用连字符 (-) 在惊叹号的开头 (后(如果) 使用连字符 (-) 以匹配自身。 在任意其他位置,连字符可标识一个范围内的 ANSI 字符。
-
指定字符范围时,字符必须按升序排序 (A-Z 或 0-100) 。 [A-Z] 是有效的模式,但 [Z-A] 不是。
-
忽略字符序列 [ ];它被视为 零长度字符串 (“”) 。