文字列値の条件でワイルドカード文字を使用する

文字列値の条件を含むクエリを作成する場合は、次の演算子でワイルドカード文字を使用します。

like
not-like
begins-with
not-begin-with
ends-with
not-end-with

詳細については、「 FetchXml を使用したデータのクエリ」を参照してください。

これらの条件演算子を使用する場合、検索条件でワイルドカードを表すために特定の文字を使用できます。 次の表では、使用できる文字を説明しています。

登場人物 Description T-SQL のドキュメントと例
% 0 文字以上の任意の文字列に一致します。 このワイルドカード文字は、プレフィックスまたはサフィックスとして使用できます。 % ワイルドカード: 一致する文字
_ パターン マッチングを含む文字列比較操作で任意の 1 文字を照合します。 _ ワイルドカード: 1 文字に一致
[] 角かっこの間に指定した範囲内またはセット内の任意の 1 文字に一致します。 [ ] ワイルドカード: 一致する文字
[^] 角かっこの間に指定した範囲内またはセット内にない任意の 1 文字と一致します。 [^] ワイルドカード: 一致しない文字

ワイルドカード文字を含む文字列を検索する

ワイルドカード パターン マッチング文字をリテラル文字として使用できます。 ワイルドカード文字をリテラル文字として使用するには、ワイルドカード文字をかっこで囲みます。 詳細については、「 ワイルドカード文字をリテラルとして使用する」を参照してください。

先頭にワイルドカードを使用しない

ends-withや明示的な先頭のワイルド カードなど、暗黙的な先頭のワイルド カードで条件演算子を使用するクエリの実行効率は低下します。 特定のシナリオでは、これらのワイルドカードによって組織全体のパフォーマンスが低下する可能性があります。 詳細については、以下を参照してください:

これらのアンチパターンでは、クエリ オプティマイザーでクエリを最適化できないため、パフォーマンスの問題が発生します。

likebegins-withnot-begin-withends-with、またはnot-end-withを使用する式では、末尾のワイルドカードを使用しないでください。 末尾のワイルドカードの例を次に示します。

悪い例
<condition attribute='name' operator='like' value='%value' />
<condition attribute='name' operator='begins-with' value='%value' />
<condition attribute='name' operator='not-begins-with' value='%value' />
<condition attribute='name' operator='ends-with' value='value' />
<condition attribute='name' operator='not-ends-with' value='value' />

参照

FetchXml を使用して行をフィルターする
QueryExpression を使用して行をフィルターする
Web API を使用したクエリ データ