Mapping

Il prefisso mapping consente di creare una tabella di mapping che può essere utilizzata, ad esempio, per sostituire i valori di campo e i nomi di campo durante l'esecuzione dello script.

Sintassi:  

Mapping( loadstatement | selectstatement )

 

Il prefisso mapping può essere inserito prima di un'istruzione LOAD o SELECT e consente di memorizzare i risultati dell'istruzione di caricamento come tabella di mapping. Il mapping fornisce un modo efficiente di sostituire i valori di campo durante l'esecuzione dello script, ossia sostituendo US, U.S. o America con USA. Una tabella di mapping è composta da due colonne: la prima contiene dei valori di confronto, mentre la seconda contiene i valori di mapping desiderati. Le tabelle di mapping vengono salvate temporaneamente in memoria e vengono eliminate automaticamente una volta eseguito lo script.

È possibile accedere al contenuto della tabella di mapping utilizzando l'istruzione Map … Using, l'istruzione Rename Field, la funzione Applymap() o la funzione Mapsubstring().

Esempio:  

In questo esempio viene caricato un elenco del personale addetto alle vendite con un codice paese che ne identifica il paese di residenza. Viene utilizzata una tabella per il mapping di un codice paese a un paese al fine di per sostituire il codice paese con il relativo nome. Nella tabella di mapping vengono definiti solo tre paesi, mentre gli altri codici paese vengono mappati 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 tabella risultante avrà l'aspetto seguente:

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