Mapping

El prefijo mapping sirve para crear una tabla de correspondencias o enlaces, la cual puede utilizarse para, por ejemplo, reemplazar valores de campo y nombres de campos durante la ejecución de script.

Syntax:  

Mapping( loadstatement | selectstatement )

 

El prefijo mapping puede colocarse antes de una sentencia LOAD o SELECT y almacenará el resultado de la sentencia de carga como una tabla de correspondencia. Mapping ofrece una excelente manera de sustituir valores de campo durante la ejecución de script, por ej. reemplazando US, U.S. o América por USA. Una tabla de enlace se compone de dos columnas, la primera contiene los valores de comparación y la segunda contiene los valores de correspondencia deseados. Las tablas de correspondencia se almacenan temporalmente en la memoria y se eliminan automáticamente tras la ejecución de script.

Se puede acceder al contenido de la tabla de correspondencia utilizando, por ejemplo, la sentencia Map … Using, la sentencia Rename Field, la función Applymap() o la función Mapsubstring().

Example:  

En este ejemplo, se ha cargado una lista de comerciales con un código de país que representa su país de residencia. Se utiliza una tabla que hace corresponder un código de país con un país para reemplazar el código de país por el nombre del país. En la tabla de correspondencia solo se definen tres países, los otros códigos de país se hacen corresponder con 'Rest of the world'.

// Load mapping table of country codes:
map1:
mapping LOAD *
Inline [
CCode, Country
Sw, Sweden
Dk, Denmark
No, Norway
] ;
// Load list of salesmen, mapping country code to country
// If the country code is not in the mapping table, put Rest of the world
Salespersons:
LOAD *,
ApplyMap('map1', CCode,'Rest of the world') As Country
Inline [
CCode, Salesperson
Sw, John
Sw, Mary
Sw, Per
Dk, Preben
Dk, Olle
No, Ole
Sf, Risttu] ;
// We don't need the CCode anymore
Drop Field 'CCode';

La tabla resultante tiene el siguiente aspecto:

Salesperson Country
John Sweden
Mary Sweden
Per Sweden
Preben Denmark
Olle Denmark
Ole Norway
Risttu Rest of the world