Mapping
mapping-prefixet används för att skapa en mappningstabell som exempelvis kan användas för att ersätta fältvärden och fältnamn under skriptexekveringen.
Syntax:
Mapping( loadstatement | selectstatement )
Prefixet mapping kan sättas framför en LOAD- eller SELECT-sats. Det sparar resultatet från laddningssatsen i form av en mappningstabell. Mappning är ett effektivt sätt att byta ut fältvärden under skriptexekvering, och exempelvis ersätta US, U.S. eller Amerika med USA. En mappningstabell måste bestå av två kolumner, den första innehållande jämförelsevärden och den andra innehållande önskade mappningsvärden. Mappningstabeller lagras tillfälligt i minnet och avlägsnas automatiskt efter skriptexekveringen.
Mappningstabellens innehåll kan exempelvis nås via Map … Using- eller Rename Field-satsen, samt via Applymap()- ellerMapsubstring()-funktionen.
Exempel:
I det här exemplet laddar vi en lista med säljare med en landskod som står för det land där de är bosatta. Vi använder en tabell som mappar en landskod till ett land för att ersätta landskoden med landets namn. Enbart tre länder är definierade i mappningstabellen, övriga landskoder mappas till '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';
Den resulterande tabellen ser ut så här:
Salesperson | Country |
---|---|
John | Sweden |
Mary | Sweden |
Per | Sweden |
Preben | Denmark |
Olle | Denmark |
Ole | Norway |
Risttu | Rest of the world |