[ ] (萬用字元 - 相符的字元) (Transact-SQL)
適用於:sql Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Platform System (PDW) SQL 分析端點Microsoft網狀架構倉儲中的 Microsoft Fabric SQL 資料庫Microsoft網狀架構
符合方括號 [ ]
之間所指定之指定範圍或集合內的任何單一字元。 這些萬用字元可用於包含模式比對 (如 LIKE
和 PATINDEX
) 的字串比較中。
範例
A:簡單範例
下列範例會傳回開頭為字母 m
的名稱。 [n-z]
會指定第二個字母必須是範圍從 n
到 z
中的某一個字母。 百分比萬用字元 %
允許開頭為字元 3 的任何字元或沒有字元。 model
和 msdb
資料庫符合此原則。 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)