[ ] (萬用字元 - 相符的字元) (Transact-SQL)

適用於:Microsoft Fabric 中 Microsoft Fabric倉儲中的 SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體 Azure SynapseAnalytics Analytics Platform System (PDW)SQL 分析端點

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

範例

A:簡單範例

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

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

以下為結果集。

name
-----
model
msdb

您可能需要安裝其他符合資格的資料庫。

B:更複雜的範例

下列範例使用 [] 運算子,尋找地址有四位數郵遞區號的所有 Adventure Works 員工的識別碼和姓名。

-- Uses AdventureWorks  
  
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

另請參閱

LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (萬用字元 - 相符的字元) (Transact-SQL)
[^] (萬用字元 - 不相符的字元) (Transact-SQL)
_ (萬用字元 - 符合單一字元) (Transact-SQL)