Comando MERGE
Información de concepto
Combina registros de dos tablas de Analytics ordenadas con estructuras idénticas en una nueva tabla de Analytics que usa el mismo criterio de ordenamiento que las tablas originales.
Sintaxis
MERGE {{ON campos_clave|ON ALL <EXCLUDE nombre_campo <...n>>}|{PKEY campos_clave_primarios|PKEY ALL <EXCLUDE nombre_campo <...n>>} {SKEY campos_clave_secundarios|SKEY ALL <EXCLUDE nombre_campo <...n>>}} <IF prueba> TO nombre_tabla <LOCAL> <OPEN> <WHILE prueba> <FIRST rango|NEXT rango> <APPEND> <PRESORT> <ISOLOCALE código_lugar>
Nota
Solo los campos de caracteres, o los campos calculados de caracteres, se pueden usar como campos clave en MERGE.
Los campos clave de las tablas primaria y secundaria deben estar ordenados en orden ascendente. Si uno o ambos campos clave no están ordenados, o lo están en orden descendente, el comando MERGE no se completa correctamente.
Puede utilizar PRESORT para ordenar el campo clave primario. Si el campo clave secundario no está ordenado, debe ordenarlo en una operación de ordenación independiente antes de realizar la fusión.
Puede indexar la tabla primaria y la secundaria en lugar de ordenarlas. Con tablas extensas, la indexación en lugar del ordenamiento puede reducir el tiempo necesario para fusionar las tablas.
Parámetros
Nombre | Descripción |
---|---|
ON campos_clave | ON ALL |
Nota Solo puede usar ON si los campos clave correspondientes de las tablas primaria y secundaria tienen el mismo nombre. Si los campos clave correspondientes tienen nombres diferentes o si son expresiones en lugar de campos físicos reales, debe usar PKEY y SKEY. El o los campos clave tanto en las tablas primarias como secundarias.
|
EXCLUDE nombre_campo opcional |
Solo tiene validez al fusionar utilizando ON ALL. El o los campos que se deben excluir del comando. EXCLUDE le permite ajustar ON ALL, excluyendo campos específicos. EXCLUDE debe ir inmediatamente a continuación de ON ALL. Por ejemplo: ON ALL EXCLUDE campo_1 campo_2 |
PKEY campos_clave_primarios | PKEY ALL |
El o lo campos clave, o una expresión, de la tabla primaria.
|
EXCLUDE nombre_campo opcional |
Solo tiene validez al fusionar utilizando PKEY ALL. El o los campos que se deben excluir del comando. EXCLUDE le permite ajustar PKEY ALL, excluyendo campos específicos. EXCLUDE debe ir inmediatamente a continuación de PKEY ALL. Por ejemplo: PKEY ALL EXCLUDE campo_1 campo_2 |
SKEY campos_clave_secundarios | SKEY ALL |
El o los campos clave, o una expresión, de la tabla secundaria.
|
EXCLUDE nombre_campo opcional |
Solo tiene validez al fusionar utilizando SKEY ALL. El o los campos que se deben excluir del comando. EXCLUDE le permite ajustar SKEY ALL, excluyendo campos específicos. EXCLUDE debe ir inmediatamente a continuación de SKEY ALL. Por ejemplo: SKEY ALL EXCLUDE campo_1 campo_2 |
IF prueba opcional |
Una expresión condicional que debe ser verdadera para procesar cada registro. El comando se ejecuta únicamente en los registros que cumplen la condición. Nota El parámetro IF se evalúa únicamente con los registros que quedan en la tabla después de aplicar los parámetros de alcance (WHILE, FIRST, NEXT). |
TO nombre_tabla |
El lugar al que se deben enviar los resultados del comando:
|
LOCAL opcional |
Guarda el archivo de salida en la misma ubicación que el proyecto de Analytics. Nota Aplicable únicamente al ejecutar el comando en una tabla de servidor con un archivo de salida que es una tabla de Analytics. El parámetro LOCAL debe ir inmediatamente después del parámetro TO. |
OPEN opcional |
Abre la tabla creada por el comando después de la ejecución del comando. Solo es válido si el comando crea una tabla de salida. |
WHILE prueba opcional |
Una expresión condicional que debe ser verdadera para procesar cada registro. El comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al final de la tabla. Nota Si usa WHILE junto con FIRST o NEXT, el procesamiento de registros se detiene al llegar a un límite. |
FIRST rango | NEXT rango opcional |
La cantidad de registros que se procesarán:
Utilice intervalo para especificar la cantidad de registros que se deben procesar. Si omite FIRST y NEXT, se procesan todos los registros de forma predeterminada. |
APPEND opcional |
Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el archivo. Nota Debe asegurarse de que la estructura de la salida del comando y del archivo existente sean idénticas:
Analytics anexa la salida a un archivo existente sin importar cuál sea su estructura. Si la estructura de la salida y la del archivo existente no coinciden, es posible que los datos que se obtengan estén incompletos, mezclados o sean imprecisos. |
PRESORT opcional |
Ordena la tabla primaria por el campo primario antes de ejecutar el comando. Nota No puede utilizar PRESORT dentro del comando GROUP. Omita PRESORT:
|
ISOLOCALE código_lugar opcional |
Nota Aplicable únicamente en la edición Unicode de Analytics. El idioma (configuración regional) del sistema en el formato idioma_país. Por ejemplo, para francés de Canadá, ingrese el código fr_ca. Use los siguientes códigos:
Si no utiliza ISOLOCALE, se utiliza la configuración regional predeterminada del sistema. |
Ejemplos
Fusionar tablas con nombres de campos de clave idénticos
El ejemplo siguiente fusiona dos tablas con nombres de campos clave idénticos:
OPEN Ubicación_empleados_1 PRIMARY
OPEN Ubicación_empleados_2 SECONDARY
MERGE ON Apellido TO “Todos_los_empleados.fil” PRESORT
Fusionar tablas con diferentes nombres de campos clave
El ejemplo siguiente fusiona dos tablas con nombres de campos clave diferentes:
OPEN Ubicación_empleados_1 PRIMARY
OPEN Ubicación_empleados_2 SECONDARY
MERGE PKEY Apellido SKEY Ape TO "Todos_los_empleados" PRESORT
Observaciones
Si desea obtener más información sobre la forma en la que funciona este comando, consulte Fusionar tablas.
Alternativas a la fusión
Puede ser problemático realizar una fusión correcta. Puede obtener el mismo resultado anexando o extrayendo y anexando, y luego ordenando.
Si desea obtener más información, consulte Comando APPEND y Comando EXTRACT.
Si las dos tablas de origen ya están ordenadas, fusionarlas es más eficiente y se puede ejecutar de forma más rápida.