次の方法で共有


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

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric プレビューの SQL データベース

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

Examples

この記事のコード サンプルでは、AdventureWorks2022 または AdventureWorksDW2022 サンプル データベースを使用します。このサンプル データベースは、Microsoft SQL Server サンプルとコミュニティ プロジェクト ホーム ページからダウンロードできます。

A: 基本的な例

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

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