[ ] (ワイルドカード - 一致する文字列) (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric のSQL 分析エンドポイント
Microsoft Fabric のウェアハウス
角かっこ [ ]
で指定された範囲または集合の任意の 1 文字に一致します。 これらのワイルドカード文字は、LIKE
や PATINDEX
などのパターン検索を含む文字列比較で使用できます。
例
A: 簡単な例
次の例では、文字 m
で始まる名前が返されます。 [n-z]
は、2 番目の文字が n
から z
の範囲に含まれる必要があることを指定します。 パーセントのワイルドカード %
は、2 文字に 0 個以上の任意の文字列が続くことを指定します。 model
データベースと msdb
データベースがこの条件を満たしています。 master
データベースは条件を満たさず、結果セットから除外されます。
SELECT name FROM sys.databases
WHERE name LIKE 'm[n-z]%';
結果セットは次のようになります。
name
-----
model
msdb
他にも該当するデータベースがインストールされている可能性があります。
B: より複雑な例
次の例では、4 桁の郵便番号付きの住所を持つ Adventure Works のすべての従業員の ID と名前を [] 演算子を使用して検索します。
-- 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: 範囲と 1 文字を組み合わせたセットを使用する
ワイルドカード セットには、1 文字と範囲の両方を含めることができます。 次の例では、[] 演算子を使用して、1 つの数字と一連の特殊文字で始まる文字列を検索します。
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)
_ (ワイルドカード - 1 文字に一致) (Transact-SQL)