Usar comparación de columnas en consultas

En Microsoft Dataverse, los usuarios pueden realizar una comparación de columnas para los siguientes operadores de condición usando FetchXML, Web API o QueryExpression mediante el SDK para .NET.

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

Estos operadores permiten la comparación de una columna con un valor específico y devolverá todos los registros encontrados, o permitirá la comparación de dos columnas para devolver todos los registros con un valor coincidente.

Limitaciones

La comparación de columnas de Dataverse tiene las siguientes limitaciones:

  • Con Web API y QueryExpression, solo puedes comparar columnas dentro de una sola tabla.

    Con FetchXml, puede comparar columnas en otras tablas relacionadas. Consulte Comparaciones cruzadas de tablas.

  • Solo se pueden comparar dos columnas a la vez.

  • Los operadores de condiciones de valores múltiples no son compatibles (es decir, "en").

  • Los operadores con condiciones extendidas no son compatibles (es decir, "creditlimit > gasta + 1000").

  • No se admite la comparación de columnas incompatibles. Por ejemplo, las columnas "int vs. int" son una comparación válida, pero las columnas "int vs. string" no son una comparación válida.

Comparación de columnas usando FetchXML

El siguiente ejemplo muestra cómo comparar columnas usando FetchXML.

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

Para FetchXML, el atributo valueof del elemento de condición especifica el nombre de la columna para comparar con la columna seleccionada. En el ejemplo anterior, la columna firstname se compara con la columna lastname y devuelve cualquier registro que contenga el mismo valor en ambas columnas.

Comparaciones cruzadas de tablas

Con FetchXML solamente, puede comparar valores de campos de tablas relacionadas. El siguiente ejemplo devuelve filas donde la columna contacto fullname coincide con la columna cuenta 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>

El elemento link-entity debe usar un atributo alias y el valor del parámetro valueof debe hacer referencia a ese alias y al nombre de la columna en la tabla relacionada.

Consulte también

Comparación de columnas usando la API web
Comparación de columnas usando el SDK

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).