內含的模式比對為字串比較提供了一個多用途工具。下表顯示了你可以通過 Like 運算子 使用的萬用字元和它們匹配的數字或字串的數目。
| 在樣式中的字元 |
在運算式中的匹配 |
| ? _(底線) |
任何單一字元 |
| * or % |
零個或多個字元 |
| # |
任何單一數字(0 — 9) |
| [charlist] |
任何在字元表中的單一字元 |
| [!charlist] |
任何不在字元表中的單一字元 |
可用括在括弧 ([ ]) 中的一組字元(字元表)來匹配運算式中任何的單一字元,而且字元表中幾乎可以包含 ANSI 字元集中的任何字元,包括數字。事實上,特殊字元,如左括弧 ([ )、問號(?)、井字型大小(#)和星號(*), 當它們括在括弧內時,可以直接和它們自己匹配。一組字元內的右括弧 ( ]) 不能匹配它自己,但是如果它是一組之外的單一字元,就能用來匹配。
除了括在括弧內的字元的簡單表列,字元表可以指定一字元範圍,用連字號號 (-) 來隔開範圍的上下界。例如,在樣式 中使用 [A-Z] ,可在包含從 A 到 Z 的任何大寫字母的運算式內,找出相應的字元位置。 可以在括弧之中包含多個範圍且不需要在範圍間划上界線。例如,[a-zA-Z0-9] 指任何符合文數值的字元。
一定要注意,僅當使用 Microsoft? Jet 4.X 版和 Microsoft OLE DB Provider for Jet 時,ANSI SQL 萬用字元 (%) 和 (_) 才可用。若使用 Microsoft Access 或 DAO,則將其視為原義字元。
樣式匹配的重要的規則還有:
- 在字元表開頭的驚歎號(!),意味著在運算式中尋找那些不包括在字元表中的字元。若驚歎號(!)在括弧之外,它只匹配它自己。
- 如果連字號(-)在字元表的開頭(如果有驚歎號,則緊跟在驚歎號之後),或在字元表的末尾,則它匹配連字號(-)自己。否則它被視為 ANSI 字元範圍的標識。
- 當您指定一個字元範圍時,首尾字元必須以升序的順序出現(A-Z 或 0-100)。例如,[A-Z] 是有效,而 [Z-A] 則無效。
- 字元順序 [ ] 忽略不計,被看作零長度字串 (“”)。