適用於:SQL Server
Azure SQL Database
Azure SQL 受控執行個體
Azure Synapse Analytics
Microsoft 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