通配符用於 `LIKE` 運算子的模式比對,可替代一或多個字元。SQL Server 支援四種通配符:
| 符號 | 名稱 | 說明 | 範例匹配 |
|---|---|---|---|
| % | 百分號 | 替代**零個或多個**任意字元 | 'A%' → A, AB, ABC... |
| _ | 底線 | 替代**單一個**任意字元 | '_BC' → ABC, XBC... |
| [charlist] | 字元清單 | 匹配清單中**任一單一字元** | '[ABC]%' → 以 A/B/C 開頭 |
| [^charlist] 或 [!charlist] | 排除字元清單 | 匹配**不在**清單中的任一單一字元 | '[^ABC]%' → 不以 A/B/C 開頭 |
| Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Adams | John | Oxford Street | London |
| 2 | Bush | George | Fifth Avenue | New York |
| 3 | Carter | Thomas | Changan Street | Beijing |
-- 城市以 "Ne" 開頭
SELECT * FROM Persons WHERE City LIKE 'Ne%';
-- 結果:New York (Id=2)
-- 城市包含 "lond" (不分大小寫)
SELECT * FROM Persons WHERE City LIKE '%lond%';
-- 結果:London (Id=1)
-- FirstName 第二字元起為 "eorge" (即 _eorge)
SELECT * FROM Persons WHERE FirstName LIKE '_eorge';
-- 結果:George (Id=2)
-- LastName 模式:C _ r _ er (Carter)
SELECT * FROM Persons WHERE LastName LIKE 'C_r_er';
-- 結果:Carter (Id=3)
-- 城市以 A、L、N 任一字元開頭
SELECT * FROM Persons WHERE City LIKE '[ALN]%';
-- 結果:London (L), New York (N) → Id=1,2
-- 城市不以 A、L、N 開頭
SELECT * FROM Persons WHERE City LIKE '[^ALN]%';
-- 或 WHERE City LIKE '[!ALN]%'
-- 結果:Beijing (B) → Id=3
SELECT * FROM Table WHERE Column LIKE '%100\%%' ESCAPE '\'; -- 匹配含 "100%" 的字串
熟練掌握 `%`、`_`、`[]`、`[^]` 四大通配符組合,能解決 95% 的模糊比對需求。記住:前綴查詢用索引、中綴/後綴需全掃、複雜模式考慮全文檢索或正則表達式 (CLR)。