SQL查詢中的模式匹配

使用通配符進行不精確匹配

如果您不知道您正在尋找的確切單詞或短語,SQL模式匹配允許您搜索數據中的模式。 這種SQL查詢使用通配符來匹配模式,而不是完全指定它。 例如,可以使用通配符“C%”來匹配任何以大寫字母C開頭的字符串。

使用LIKE運算符

要在SQL查詢中使用通配符表達式,請在WHERE子句中使用LIKE運算符,並將該模式放在單引號內。

使用%通配符執行簡單搜索

要搜索姓名以字母C開頭的數據庫中的任何員工,請使用以下Transact-SQL語句:

SELECT * FROM employees WHERE last_name LIKE'C%'

使用NOT關鍵字省略模式

使用NOT關鍵字選擇與模式不匹配的記錄。 例如,此查詢返回名稱最後不以C開頭的所有記錄:

SELECT * FROM employees where last_name not like'C%'

使用%通配符兩次匹配一個模式

使用通配符的兩個實例來匹配任何地方的特定模式。 此示例返回包含姓氏中任何位置的C的所有記錄:

SELECT * FROM employees WHERE last_name LIKE'%C%'

在特定位置查找模式匹配

使用_通配符在特定位置返回數據。 此示例僅在C出現在姓氏列的第三位時才匹配:

SELECT * FROM employees WHERE last_name LIKE'_ _C%'

Transact SQL中支持的通配符表達式

Transact SQL支持多種通配符表達式:

將通配符組合為複雜模式

將這些通配符組合成複雜模式以執行更高級的查詢。 例如,假設您需要構建名稱以字母表前半部分開頭的所有員工列表,但不要以元音結尾。 您可以使用以下查詢:

SELECT * FROM employees WHERE last_name LIKE'[am]%[^ aeiou]'

同樣,您可以通過使用_ pattern的四個實例來構造姓氏正好包含四個字符的所有員工的列表:

SELECT * FROM employees WHERE last_name LIKE'____'

如您所知,使用SQL模式匹配功能為數據庫用戶提供了超越簡單文本查詢和執行高級搜索操作的能力。