Mapping

Prefiks mapping służy do utworzenia tabeli mapowania, której można używać na przykład do zastępowania wartości i nazw pól podczas wykonywania skryptu.

Syntax:  

Mapping( loadstatement | selectstatement )

 

Podanie prefiksu mapping przed instrukcją LOAD lub SELECT spowoduje zapisanie wyniku instrukcji ładującej w postaci tabeli mapowania. Mapowanie to skuteczny sposób na podstawianie wartości pola podczas wykonywania skryptu, na przykład zastępowania słów US, U.S. lub Ameryka słowem USA. Tabela mapowania zawiera dwie kolumny, z których pierwsza zawiera wartości porównywane, a druga docelowe wartości mapowania. Tabele mapowania są tymczasowo przechowywane w pamięci i automatycznie usuwane po wykonaniu skryptu.

Dostęp do zawartości tabeli mapowania można uzyskać na przykład z instrukcji Map … Using, instrukcji Rename Field, funkcji Applymap() lub funkcji Mapsubstring().

Example:  

W tym przykładzie ładowana jest lista sprzedawców z kodem kraju reprezentującym ich kraj zamieszkania. Używana jest tabela mapująca kod kraju na kraj, aby zastąpić kod kraju jego nazwą. W tabeli mapowania zdefiniowano tylko trzy kraje, inne kody krajów są mapowane na wartość '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';

Otrzymana tabela wygląda następująco:

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