Altova MapForce 2024 Professional Edition

Tras añadir un componente WHERE/ORDER de SQL/NoSQL a la asignación deberá añadir una condición (cláusula) WHERE para especificar cómo se deben filtrar los datos que están conectados al componente exactamente. La condición WHERE debe introducirse en el cuadro de diálogo Propiedades del componente WHERE/ORDER de SQL/NoSQL (véase el apartado anterior).

 

En MapForce las condiciones WHERE se escriben de forma similar a como se escriben las mismas cláusulas SQL fuera de MapForce, usando la sintaxis que corresponda al dialecto SQL de la base de datos. Por ejemplo, puede usar operadores, comodines, subselecciones o funciones de agregado. Para crear un parámetro que se pueda pasar desde la asignación introduzca un carácter de dos puntos ( : ) seguido del nombre del parámetro.

 

Nota:Cuando termine de escribir la cláusula WHERE y haga clic en Aceptar, MapForce validará la integridad de la instrucción SQL final. Si se detectan errores sintácticos, emitirá mensajes en un cuadro de diálogo.

 

En esta tabla puede ver los operadores más frecuentes que se pueden usar en la cláusula WHERE:

 

Operador

Descripción

=

Igual

<>

No igual

<

Menor que

>

Mayor que

>=

Mayor o igual

<=

Menor o igual

IN

Recupera un valor conocido de una columna

LIKE

Busca un patrón determinado

BETWEEN

Busca dentro de un intervalo

 

Use el comodín % (porcentaje) para representar cualquier número de caracteres de un patrón. Por ejemplo, para recuperar todos los registros que acaben en «r» de un campo llamado lastname, debe usar esta expresión:

 

lastname = "%r"

 

Cuando consulte bases de datos compatibles con la ordenación y consulta de datos de base de datos XML (p.ej. IBM DB2, Oracle, SQL Server), podrá usar funciones y palabras clave XML que correspondan a dicho tipo de base de datos. Por ejemplo:

 

xmlexists('$c/Client/Address[zip>"55116"]' passing USER.CLIENTS.CONTACTINFO AS "c")

 

Véase también el apartado Ejemplo: extraer datos de columnas tipo XML de IBM DB2.

 

Además, si quiere ordenar el conjunto de registros recuperado usando un campo como criterio de ordenación, añada una cláusula ORDER BY en el cuadro correspondiente del cuadro de diálogo Propiedades del componente WHERE/ORDER de SQL/NoSQL. Para ordenar los registros usando varios campos como criterio de ordenación, separe los nombres de campo por comas. Para cambiar el orden (ascendente/descendente) use las palabras clave ASC y DESC. Por ejemplo, la cláusula ORDER BY que aparece a continuación recupera registros ordenados usando el campo lastname y después el campo firstname como criterios de ordenación en orden descendente:

 

lastname, firstname DESC

 

Ejemplo n°1

La condición WHERE que aparece a continuación está vinculada a la tabla users del componente de BD Nanonull.sqlite. Recupera los registros en los que last_name es mayor que la letra "M". En otras palabras, todos los nombres a partir del usuario "Marzolla".

 

last_name > "M"

 

Observe las conexiones:

 

La conexión table/field tiene origen en la tabla en la que quiere realizar la consulta, (users en este caso).

La salida result está conectada a un elemento "primario" de los campos en los que se consulta/filtra (en este caso al elemento row).

mf-sql-where-example1

 

Ejemplo n°2

La condición WHERE que aparece a continuación crea un parámetro param que aparece en el componente WHERE/ORDER de SQL/NoSQL de la asignación.

 

last_name LIKE :param

mf-sql-where-example2

El componente de constante %M aporta el valor del parámetro param. El comodín % denota cualquier número de caracteres. Esto hace que la asignación busque un parámetro en la columna last_name (todos los apellidos que empiecen en "M").

 

Ejemplo nº3

La condición WHERE que aparece a continuación crea los dos parámetros min y max a los que se comparan los valores actuales de quantity. Los valores máximo (max) y mínimo (min) se indican por medio de constantes.

 

quantity > :min and quantity < :max

mf-sql-where-example3

La condición WHERE de este ejemplo también se podría escribir con el operador BETWEEN:

 

quantity BETWEEN :min and :max

 

© 2018-2024 Altova GmbH