[^] (ワイルドカード - 一致しない文字列) (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

角かっこで囲んで指定された範囲またはセット [^] に含まれない任意の 1 文字と一致します。 これらのワイルドカード文字は、LIKEPATINDEX などのパターン検索を含む文字列比較で使用できます。

A: 簡単な例

次の例では [^] 演算子を使用して、Contact テーブル内で、名前が Al で始まり、かつ 3 文字目が文字 a ではない上位 5 人を検索します。

-- Uses AdventureWorks  
  
SELECT TOP 5 FirstName, LastName  
FROM Person.Person  
WHERE FirstName LIKE 'Al[^a]%';  

結果セットは次のようになります。

FirstName     LastName
---------     --------
Alex          Adams
Alexandra     Adams
Allison       Adams
Alisha        Alan
Alexandra     Alexander

B: 文字の範囲の検索

ワイルドカード セットには、1 文字または文字の範囲に加えて、文字と範囲の組み合わせも含めることができます。 次の例では、[^] 演算子を使用して、文字または数字で始まらない文字列を検索します。

SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id 
FROM sys.columns 
WHERE name LIKE '[^0-9A-z]%';

結果セットは次のようになります。

object_id     object_name   name    column_id
---------     -----------   ----    ---------
1591676718    JunkTable     _xyz    1

参照

LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (ワイルドカード - 一致する文字列 (Transact-SQL)
[ ] (ワイルドカード - 一致する文字列) (Transact-SQL)
_ (ワイルドカード - 1 文字に一致) (Transact-SQL)