Correspondencia
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 campo durante la ejecución del script.
Sintaxis:
Mapping( loadstatement | selectstatement )
El prefijo mapping se puede colocar delante de una o una sentencia LOAD o SELECT y almacenará el resultado de la sentencia de carga como una tabla de correspondencia. Mapping ofrece una manera eficaz de sustituir valores de campo durante la ejecución del 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 usando, por ejemplo, la sentencia Map … Using, la sentencia Rename Field, la función Applymap() o la función Mapsubstring().
Ejemplo:
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. Solo tres países están definidos en la tabla de asignación, otros códigos de país están asignados a '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 |