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.
Składnia:
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().
Przykład:
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'.
map1:
mapping LOAD *
Inline [
CCode, Country
Sw, Sweden
Dk, Denmark
No, Norway
] ;
// Load list of salesmen, mapping country code to country
Salespersons:
LOAD *,
ApplyMap('map1', CCode,'Rest of the world') As Country
Inline [
CCode, Salesperson
Sw, John
Sw, Mary
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 |