在「命令提示字元」視窗或是 DOS 裡,可以使用萬用字元。在 T-SQL 裡面,同樣也有萬用字元可用,共計 5 種萬用字元可用在 SELECT 或 WHERE 子句,這次要介紹用於 WHERE 子句的萬用字元:_。
使用過「命令提示字元」視窗或是 DOS 萬用字元的邦友應該都知道,萬用字元是用來判斷特定字元字串是否符合我們所指定的模式。這個模式可以包含一般的字元與萬用字元,以便在比對的時候,可以找出與字元字串中,符合我們所指定的字元,先行過濾不必要的資料。
要於 WHERE 子句中,使用萬用字元,必須搭配 LIKE 關鍵字來執行字串比較,所以比對模式字串中的所有字元都很重要(包括開頭與結尾的空格),因為一不小心,所查詢出來的結果可能就不是我們所要的。
萬用字元 _(就是一個底線)代表單一個字元。舉個例子來說,alexc_,代表所有以 alexc 開頭的 6 個字元都可以,例如:alexcA、alexcb、alexc6...等。
假設要找出 AdventureWorks 資料庫的 HumanResources.Employee 資料表中,職稱倒數末 4 個字元是 WC 開頭的資料記錄,就可以使用下面的程式碼:
USE AdventureWorks
GO
SELECT Title 職稱 FROM HumanResources.Employee
WHERE Title LIKE '%WC__'
執行的部分結果畫面:
當然萬用字元 _ 是可以單獨使用的。例如,要找出 ContactID 是 100 開頭的 4 位數字:
USE AdventureWorks
GO
SELECT ContactID FROM HumanResources.Employee
WHERE ContactID LIKE '100_'
執行結果:
如果是要找出 ContactID 不是 100 開頭的 4 位數字的資料記錄,只要在 LIKE 之前,加上 NOT 關鍵字就可以了:
USE AdventureWorks
GO
SELECT ContactID FROM HumanResources.Employee
WHERE ContactID NOT LIKE '100_'