文字列値の条件を含むクエリを作成する場合は、次の演算子でワイルドカード文字を使用します。
like
not-like
begins-with
not-begin-with
ends-with
not-end-with
詳細については、「 FetchXml を使用したデータのクエリ」を参照してください。
これらの条件演算子を使用する場合、検索条件でワイルドカードを表すために特定の文字を使用できます。 次の表では、使用できる文字を説明しています。
| 登場人物 | Description | T-SQL のドキュメントと例 |
|---|---|---|
% |
0 文字以上の任意の文字列に一致します。 このワイルドカード文字は、プレフィックスまたはサフィックスとして使用できます。 |
% ワイルドカード: 一致する文字 |
_ |
パターン マッチングを含む文字列比較操作で任意の 1 文字を照合します。 |
_ ワイルドカード: 1 文字に一致 |
[] |
角かっこの間に指定した範囲内またはセット内の任意の 1 文字に一致します。 |
[ ] ワイルドカード: 一致する文字 |
[^] |
角かっこの間に指定した範囲内またはセット内にない任意の 1 文字と一致します。 |
[^] ワイルドカード: 一致しない文字 |
ワイルドカード文字を含む文字列を検索する
ワイルドカード パターン マッチング文字をリテラル文字として使用できます。 ワイルドカード文字をリテラル文字として使用するには、ワイルドカード文字をかっこで囲みます。 詳細については、「 ワイルドカード文字をリテラルとして使用する」を参照してください。
先頭にワイルドカードを使用しない
ends-withや明示的な先頭のワイルド カードなど、暗黙的な先頭のワイルド カードで条件演算子を使用するクエリの実行効率は低下します。 特定のシナリオでは、これらのワイルドカードによって組織全体のパフォーマンスが低下する可能性があります。 詳細については、以下を参照してください:
これらのアンチパターンでは、クエリ オプティマイザーでクエリを最適化できないため、パフォーマンスの問題が発生します。
like、begins-with、not-begin-with、ends-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 を使用したクエリ データ