Partager via


Utiliser la comparaison des colonnes dans les requêtes

Dans Microsoft Dataverse, les utilisateurs peuvent effectuer une comparaison de colonnes pour les opérateurs de condition suivants à l’aide de FetchXML, de l’API Web ou QueryExpression à l’aide de l’outil SDK pour .NET.

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

Ces opérateurs permettent la comparaison d’une colonne par rapport à une valeur spécifique et renvoient tous les enregistrements trouvés, ou permettent la comparaison de deux colonnes pour renvoyer tous les enregistrements avec une valeur correspondante.

Limitations

La comparaison de la colonne Dataverse présente actuellement les limitations suivantes :

  • Avec l’API Web et QueryExpression, vous ne pouvez comparer que les colonnes d’une seule table.

    Avec FetchXml, vous pouvez comparer les colonnes d’autres tables associées. Voir Comparaisons croisées de tableaux.

  • Seules deux colonnes peuvent être comparées à la fois.

  • Les opérateurs conditionnels à valeurs multiples ne sont pas pris en charge (c’est-à-dire « dans »).

  • Les opérateurs conditionnels étendus ne sont pas pris en charge (par exemple, « creditlimit > spends+1000 »).

  • La comparaison de colonnes incompatible n’est pas prise en charge. Par exemple, les colonnes « int vs int » sont une comparaison valide, mais les colonnes « int vs string » ne sont pas une comparaison valide.

Comparaison de colonnes à l’aide de FetchXML

L’exemple suivant montre comment comparer des colonnes à l’aide de FetchXML.

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

Pour FetchXML, l’attribut valueof de l’élément condition spécifie le nom de la colonne à comparer avec la colonne sélectionnée. Dans l’exemple précédent, la colonne firstname est comparée à la colonne lastname et renvoie tous les enregistrements contenant la même valeur dans les deux colonnes.

Comparaisons croisées de tables

Avec FetchXML uniquement, vous pouvez comparer les valeurs de champ dans les tables associées. L’exemple suivant renvoie les lignes dans lesquelles la colonne fullname de contact correspond à la colonne compte 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>

L’élément link-entity doit utiliser un attribut alias et la valeur du paramètre valueof doit faire référence à cet alias et au nom de colonne dans la table associée.

Voir aussi

Comparaison de colonnes à l’aide de l’API Web
Comparaison de colonnes à l’aide du SDK

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).