クエリで列比較を使用する

Microsoft Dataverse では、ユーザーは FetchXML、Web API、.NET 用 SDK を使用した QueryExpression を使用した以下の演算子で列の比較をすることができます。

FetchXml Web API ConditionOperator
eq eq Equal
ne ne NotEqual
gt gt GreaterThan
ge ge GreaterEqual
lt lt LessThan
le le LessEqual

この操作により、ある列を特定の値と比較して、検出されたレコードをすべて返したり、2つの列を比較して、一致する値を持つレコードをすべて返したりすることができます。

制限

Dataverse 列比較には、次の制限事項があります:

  • Web API と QueryExpression を使用すると、単一テーブル内の列のみを比較できます。

    FetchXml を使用すると、他の関連テーブルの列を比較できます。 テーブル間の比較 を参照してください。

  • 同時に比較できるのは 2 つの列だけです。

  • 複数値条件演算子 (つまり: in) には対応していません。

  • 拡張条件演算子 (つまり: "creditlimit > spends+1000") には対応していません。

  • 互換性のない列比較はサポートされていません。 たとえば、「int 対 int」の列は有効な比較ですが、「int 対 string」 の列は有効な比較ではありません。

FetchXML を使用した列の比較

次の例では、FetchXML を使用して列を比較する方法を示しています。

<fetch>
  <entity name='contact' >
    <attribute name='firstname' />
    <filter>
      <condition attribute='firstname' operator='eq' valueof='lastname'/>
    </filter>
  </entity>
</fetch>

FetchXML の場合、条件要素の valueof 属性は、選択した列と比較する列の名前を指定します。 前の例では、firstname 列と lastname 列が比較され、両方の列に同じ値を含むレコードが返されます。

テーブル間の比較

FetchXML のみを使用すると、関連テーブルのフィールドの値を比較できます。 次の例では、contact fullname 列が account name 列と一致する行を返します。

<fetch> 
  <entity name='contact'>
    <attribute name='contactid' />
    <attribute name='fullname' />
    <filter type='and'>
      <condition attribute='fullname' operator='eq' valueof='acct.name' />
    </filter>
    <link-entity name='account' from='accountid' to='parentcustomerid' link-type='outer' alias='acct'>
      <attribute name='name' />
    </link-entity>
  </entity>
</fetch>

link-entity 要素は alias 属性を使用する必要があり、valueof パラメータの値はそのエイリアスと関連テーブル内の列名を参照する必要があります。

関連情報

Web API を使用した列の比較
SDK を使用した列の比較

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。