[](萬用卡-角色相符)(Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsMicrosoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉庫Microsoft Fabric 中的 SQL 資料庫

匹配括號[ (和 ])中指定範圍或集合內的任何單一字元。 這些萬用字元可用於包含模式比對 (如 LIKE 和 PATINDEX) 的字串比較中。

Examples

本文中的程式碼範例使用AdventureWorks2025了 or AdventureWorksDW2025 範例資料庫,你可以從 Azure Data SQL 範例倉庫的 GitHub 倉庫下載。

A. 基本範例

下列範例會傳回開頭為字母 m 的名稱。 [n-z] 會指定第二個字母必須是範圍從 n 到 z 中的某一個字母。 百分比通配符 % 允許以第三個字元開頭的任何或沒有任何字元。 model 和 msdb 資料庫符合此原則。 master 資料庫不符合準則,並會從結果集中加以排除。

SELECT name FROM sys.databases
WHERE name LIKE 'm[n-z]%';

結果集如下所示。

name
-----
model
msdb

您可能已安裝更多合格的資料庫。

B. 更複雜的範例

以下範例利用 [] 操作員查找所有擁有四位數郵遞區號地址的 Adventure Works 員工的身分證與姓名。

SELECT e.BusinessEntityID, p.FirstName, p.LastName, a.PostalCode
FROM HumanResources.Employee AS e
INNER JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID
INNER JOIN Person.BusinessEntityAddress AS ea ON e.BusinessEntityID = ea.BusinessEntityID
INNER JOIN Person.Address AS a ON a.AddressID = ea.AddressID
WHERE a.PostalCode LIKE '[0-9][0-9][0-9][0-9]';

結果集如下所示。

EmployeeID      FirstName      LastName      PostalCode
----------      ---------      ---------     ----------
290             Lynn           Tsoflias      3000

C. 使用結合範圍和單一字元的集合

萬用字元集合可同時包含單一字元和範圍。 以下範例使用運算 [] 子尋找以數字或一連串特殊字元開頭的字串。

SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id
FROM sys.columns
WHERE name LIKE '[0-9!@#$.,;_]%';

結果集如下所示。

object_id     object_name                          name    column_id
---------     -----------                         ----  ---------
615673241     vSalesPersonSalesByFiscalYears      2002    5
615673241     vSalesPersonSalesByFiscalYears      2003    6
615673241     vSalesPersonSalesByFiscalYears      2004    7
1591676718    JunkTable                           _xyz  1