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).
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de