我們知道在使用SQL語句編寫查詢時會用到SELECT語句。它的基本結構如下:
SELECT ... ... FROM ... ... WHERE ... ... ORDER BY ... ...
在使用WHERE條件子句時我們知道可以通過LIKE關鍵字進行模糊查詢,而且我們也知道可以使用通配符實現這個。我們通常知道的通配符有下劃線_和百分號%。其實我們還有其它的查詢匹配可用,只是我們不經常使用而忽略了它們。被我們忽略的就是匹配特定范圍[]和匹配特定范圍之外的[^]兩個。
下面大家先看看在Microsoft SQL Server中定義的通配符:
通配符 說明
_(下劃線) 與任意單字符匹配
% 與包含一個或多個字符的字符串匹配
[ ] 與特定范圍(例如,[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 的所有姓。