Commande MERGE

Information de concept

Fusionner des tables

Combine les enregistrements provenant de deux tables Analytics triées avec une structure identique dans une nouvelle Analytics utilisant le même ordre de tri que les tables d'origine.

Syntaxe

MERGE {{ON champs_clés|ON ALL <EXCLUDE nom_champ <...n>>}|{PKEY champs_clés_principaux|PKEY ALL <EXCLUDE nom_champ <...n>>} {SKEY champs_clés_secondaires|SKEY ALL <EXCLUDE nom_champ <...n>>}} <IF test> TO nom_table <LOCAL> <OPEN> <WHILE test> <FIRST plage|NEXT plage> <APPEND> <PRESORT> <ISOLOCALE code_paramètres_régionaux>

Remarque

Seuls les champs caractère ou les champs calculés caractère peuvent être utilisés comme champs clés dans MERGE.

Les champs clés dans les tables primaire et secondaire doivent être triés dans l'ordre croissant. Si les champs clés de l'une ou des deux tables ne sont pas triés, ou s'ils sont triés dans l'ordre décroissant, la commande MERGE échoue.

Vous pouvez utiliser PRESORT pour trier les champs clés de la table primaire. Si les champs clés de la table secondaire ne sont pas triés, vous devez d'abord les trier lors d'une opération de tri distincte avant d'effectuer la fusion.

Les tables principale et secondaire peuvent être indexées plutôt que triées. Avec les grandes tables, indexer plutôt que trier peut permettre de diminuer la durée requise pour fusionner les tables.

Paramètres

Nom Description
ON champs_clés | ON ALL

Remarque

Vous ne pouvez utiliser ON que si les champs clés correspondants dans les tables primaire et secondaire portent le même nom. Si les champs correspondants ont des noms différents ou s'il s'agit d'expressions plutôt que de champs physiques réels, vous devez utiliser PKEY et SKEY.

Le ou les champs clés dans les tables primaire et secondaire.

  • ON champs_clés utilise le(s) champ(s) spécifié(s)

    Les champs sont utilisés dans l'ordre dans lequel vous les faites figurer dans la liste.

  • ON ALL utilise tous les champs de la table

    Les champs sont utilisés dans l'ordre dans lequel ils apparaissent dans le format de table.

EXCLUDE nom_champ

optionnel

Valide uniquement dans le cas d'une fusion à l'aide de ON ALL.

Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser ON ALL, en excluant les champs spécifiés.

EXCLUDE doit suivre immédiatement ON ALL. Par exemple :

ON ALL EXCLUDE champ_1 champ_2
PKEY champs_clés_principaux | PKEY ALL

Le ou les champs clés, ou expression clé, dans la table principale.

  • PKEY champs_clés_principaux utilise le(s) champ(s) spécifié(s)

    Les champs sont utilisés dans l'ordre dans lequel vous les faites figurer dans la liste.

  • PKEY ALL utilise tous les champs de la table

    Les champs sont utilisés dans l'ordre dans lequel ils apparaissent dans le format de table.

EXCLUDE nom_champ

optionnel

Valide uniquement en cas de fusion à l'aide de PKEY ALL.

Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser PKEY ALL, en excluant les champs spécifiés.

EXCLUDE doit suivre immédiatement PKEY ALL. Par exemple :

PKEY ALL EXCLUDE champ_1 champ_2
SKEY champs_clés_secondaires | SKEY ALL

Le ou les champs clés, ou l'expression clé, dans la table secondaire.

  • SKEY champs_clés_secondaires utilise le(s) champ(s) spécifié(s)

    Les champs sont utilisés dans l'ordre dans lequel vous les faites figurer dans la liste.

  • SKEY ALL utilise tous les champs de la table

    Les champs sont utilisés dans l'ordre dans lequel ils apparaissent dans le format de table.

EXCLUDE nom_champ

optionnel

Valide uniquement en cas de fusion à l'aide de SKEY ALL.

Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser SKEY ALL, en excluant les champs spécifiés.

EXCLUDE doit suivre immédiatement SKEY ALL. Par exemple :

SKEY ALL EXCLUDE champ_1 champ_2

IF test

optionnel

Expression conditionnelle qui doit être vraie afin de traiter chaque enregistrement. La commande est exécutée uniquement sur les enregistrements remplissant la condition.

Remarque

La condition IF est évaluée uniquement par rapport aux enregistrements restant dans une table après application des options relevant du champ d'application (WHILE, FIRST, NEXT).

TO nom_table

Emplacement vers lequel envoyer les résultats de la commande :

  • nom_table enregistre les résultats dans une table Analytics

    Indiquez nom_table sous forme de chaîne entre guillemets avec une extension de fichier .FIL. Par exemple : TO "Sortie.FIL"

    Par défaut, le fichier de données de table (.FIL) est enregistré dans le dossier contenant le projet Analytics.

    Utilisez un chemin de fichier absolu ou relatif pour enregistrer le fichier de données dans un autre dossier existant :

    • TO "C:\Sortie.FIL"
    • TO "Résultats\Sortie.FIL"

    Remarque

    La longueur des noms des tables est limitée à 64 caractères alphanumériques, sans l'extension .FIL. Le nom peut inclure le caractère de soulignement ( _ ), mais aucun autre caractère spécial ni espace. Le nom ne peut pas commencer par un chiffre.

LOCAL

optionnel

Enregistre le fichier de sortie au même emplacement que le projet Analytics.

Remarque

Applicable uniquement lorsque vous exécutez la commande sur une table de serveur avec un fichier de sortie qui est une table Analytics.

Le paramètre LOCAL doit suivre immédiatement le paramètre TO.

OPEN

optionnel

Ouvre la table créée par la commande après l'exécution de la commande. Valide uniquement lorsque la commande crée une table de sortie.

WHILE test

optionnel

Expression conditionnelle qui doit être vraie afin de traiter chaque enregistrement. La commande est exécutée jusqu'à ce que la condition soit évaluée comme fausse ou lorsque la fin de la table est atteinte.

Remarque

Si vous utilisez WHILE conjointement avec FIRST ou NEXT, le traitement des enregistrements s'arrête dès qu'une limite est atteinte.

FIRST plage | NEXT plage

optionnel

Le nombre d'enregistrements à traiter :

  • FIRST pour commencer le traitement à partir du premier enregistrement jusqu'à ce que le nombre d'enregistrements spécifié soit atteint
  • NEXT pour commencer le traitement à partir de l'enregistrement actuellement sélectionné jusqu'à ce que le nombre d'enregistrements spécifié soit atteint

Utilisez plage pour indiquer le nombre d'enregistrements à traiter.

Si vous ignorez FIRST et NEXT, tous les enregistrements sont traités par défaut.

APPEND

optionnel

Ajoute la sortie de commande à la fin d'un fichier existant au lieu de remplacer ce fichier.

Remarque

Vous devez vous assurer que la structure de la sortie de la commande et du fichier existant est identique :

  • les mêmes champs
  • le même ordre des champs
  • les champs correspondants ont la même longueur
  • les champs correspondants ont le même type de données

Analytics ajoute la sortie à un fichier existant sans tenir compte de sa structure, ce qui peut désordonner les données si la structure de la sortie et du fichier existant ne correspond pas.

PRESORT

optionnel

Trie la table principale par le champ clé primaire avant d'exécuter la commande.

Remarque

Vous ne pouvez pas utiliser PRESORT dans la commande GROUP.

Omettez PRESORT :

  • Si le champ clé primaire est déjà trié
  • Si vous fusionnez deux tables à l'aide d'un champ clé commun indexé

ISOLOCALE code_paramètres_régionaux

optionnel

Remarque

Applicable dans l'édition Unicode d'Analytics uniquement.

Paramètre système local au format langue_pays. Par exemple, pour utiliser le français canadien, saisissez fr_ca.

Utilisez les codes suivants :

  • langue code linguistique de la norme ISO 639
  • pays code pays de la norme ISO 3166

    Si vous n'indiquez pas de code pays, c'est le pays par défaut pour la langue qui est utilisé.

Si vous n'utilisez pas ISOLOCALE, ce sont les paramètres système régionaux par défaut qui sont utilisés.

Exemples

Fusion de tables ayant des noms de champs clés identiques

L'exemple suivant fusionne deux tables ayant des noms de champs clés identiques :

OPEN Position_Employés_1 PRIMARY
OPEN Position_Employés_2 SECONDARY
MERGE ON Nom TO "TousEmployés" PRESORT

Fusion de tables ayant des noms de champs clés différents

L'exemple suivant fusionne deux tables ayant des noms de champs clés différents :

OPEN Position_Employés_1 PRIMARY
OPEN Position_Employés_2 SECONDARY
MERGE PKEY Nom SKEY Nom TO "TousEmployés" PRESORT

Remarques

Pour plus d'informations sur le fonctionnement de cette commande, consultez Fusion de tables.

Alternatives à la fusion

L'exécution correcte d'une fusion peut s'avérer délicate. Vous pouvez obtenir le même résultat en procédant à une concaténation, à une extraction et à un ajout, puis à un tri des données.

Pour plus d'informations, consultez les rubriques Commande APPEND et Commande EXTRACT.

Si les deux tables sources sont déjà triées, la fusion est plus efficace et peut s'opérer plus rapidement.