Altova MapForce 2024 Enterprise Edition

Une fois qu’un composant SQL/NoSQL-WHERE/ORDER est ajouté au mappage, celui-ci nécessite une condition WHERE (clause) par le biais duquel vous pouvez spécifier comment vous souhaitez filtrer les données connectées au composant. La condition WHERE doit être saisie dans le dialogue Propriétés SQL/NoSQL-WHERE/ORDER (voir la section précédente).

 

L'écriture d'une condition WHERE depuis MapForce est semblable à l'écriture de la même clause SQL en dehors de MapForce. Veuillez utiliser la syntaxe applicable au dialecte SQL de la base de données correspondante. Par exemple, vous pouvez utiliser des opérateurs, des caractères génériques et des sous-sélections ou des fonctions d'agrégat. Pour créer des paramètres que vous pouvez passer depuis le mappage, saisir un double-point ( : ) suivi par le nom du paramètre.

 

Note :Lorsque vous terminez l'écriture de la clause WHERE et cliquez sur OK, MapForce valide l'intégrité de l'instruction SQL finale. Un dialogue vous relance en cas d'apparition d'erreurs de syntaxe.

 

La table ci-dessous recense certains des opérateurs typiques qui peuvent être utilisés dans la clause WHERE :

 

Opérateur

Description

=

Égal

<>

Non égal

<

Inférieur à

>

Supérieur à

>=

Supérieur à/égal

<=

Inférieur à/égal

IN

Extrait une valeur connue d'une colonne

J'AIME

Cherche un motif particulier

BETWEEN

Cherche dans une fourchette

 

Utilise le caractère générique % (pourcentage) pour représenter tout nombre de caractères dans un motif. Par exemple, pour extraire tous les enregistrements se terminant en "r" depuis un champ appelé lastname, utilisez l'expression suivante :

 

lastname = "%r"

 

Lorsque vous requêtez des bases de données qui prennent en charge le stockage et la requête des données de base de données XML (par exemple, IBM DB2, Oracle, SQL Server), vous pouvez utiliser des fonctions et des mots-clés XML applicables à cette base de données particulière, par exemple :

 

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

 

Voir aussi Exemple : Extraire des données depuis les colonnes IBM DB2 de type XML.

 

En option, si vous souhaitez trier les enregistrements par un champ particulier, ajoutez une clause ORDER BY dans le champ de texte correspondant du dialogue Propriétés SQL/NoSQL-WHERE/ORDER. Pour trier par plusieurs champs, séparez les noms de champ avec des virgules. Pour changer l'ordre du tri, utilisez les mots-clés ASC et DESC. Par exemple, la clause ORDER BY suivante extrait des enregistrements par lastname, puis par firstname, dans l'ordre descendant :

 

lastname, firstname DESC

 

Exemple 1

La condition WHERE suivante est attachée à la table utilisateurs du composant de base de données Nanonull.sqlite. EIle extrait les enregistrements dans lesquels last_name sont supérieurs à la lettre "M". En d'autres termes, il extrait tous les noms depuis "Marzolla".

 

last_name > "M"

 

Notez comment les connexions sont placées :

 

La connexion vers table/field provient dans la table que vous souhaitez interroger, (utilisateurs dans ce cas).

La sortie result est connectée à un item "parent" des champs qui sont requêtés/filtrés (dans ce cas l'item row).

mf-sql-where-example1_zoom85

 

Exemple 2

La condition WHERE suivante crée un paramètre param qui apparaît ensuite dans le composant WHERE/ORDER SQL dans le mappage.

 

last_name LIKE :param

mf-sql-where-example2

Le composant de constante %S fournit la valeur du paramètre param. Le caractère générique % dénote un nombre quelconque de caractères. Le mappage cherche donc un motif dans la colonne last_name (tous les noms de famille commençant par "M").

 

Exemple 3

La condition WHERE suivante crée deux paramètres, min et max, auxquelles les valeurs actuelles de quantity sont comparées. Les valeurs min et max sont fournies par deux composants constants du mappage.

 

quantity > :min and quantity < :max

mf-sql-where-example3_zoom80

La condition WHERE dans cet exemple peut aussi être écrite en utilisant l'opérateur BETWEEN :

 

quantity BETWEEN :min and :max

 

© 2018-2024 Altova GmbH