共用方式為


[ ] (通配符 - 要比對的字元) (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體Azure Synapse Analytics分析平台系統(PDW)Microsoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉儲Microsoft Fabric 中的 SQL 資料庫

符合方括號 [ ] 之間所指定之指定範圍或集合內的任何單一字元。 這些萬用字元可用於包含模式比對 (如 LIKEPATINDEX) 的字串比較中。

Examples

本文中的程式代碼範例會使用 AdventureWorks2025AdventureWorksDW2025 範例資料庫,您可以從 Microsoft SQL Server 範例和社群專案 首頁下載。

A. 基本範例

下列範例會傳回開頭為字母 m 的名稱。 [n-z] 會指定第二個字母必須是範圍從 nz 中的某一個字母。 百分比通配符 % 允許以第三個字元開頭的任何或沒有任何字元。 modelmsdb 資料庫符合此原則。 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