Mapping

mappingプレフィックスは、マッピング テーブルの作成に使用します。マッピング テーブルは、スクリプト実行中に項目値と項目名を置き換えるといった操作で使用できます。

構文:  

Mapping( loadstatement | selectstatement )

 

mappingプレフィックスは LOAD またはSELECT ステートメントの前に入れることができ、ロード ステートメントの結果をマッピング テーブルとして保存します。マッピングを使用することで、たとえば、「U.S.」から「US」へ、「USA」から「America」へ変更するなど、スクリプト実行中にフィールド項目を効率的に置き換えられるようになります。マッピング テーブルは 2 列構成で、1 列目には比較値、2 列目はマッピング値が含まれます。マッピング テーブルは一時的にメモリに保存され、スクリプト実行後に自動的に削除されます。

マッピング テーブルのコンテンツには、Map … Usingおよび Rename Field ステートメント、Applymap() および Mapsubstring() 関数を使用してアクセスできます。

例:  

この例では、salesperson とその居住国の国コードのリストをロードします。国コードを国名に置き換えるために、国コードを国にマッピングしたテーブルを使用します。このマッピング テーブルでは、3 つの国のみが定義されており、他の国は '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';

この結果、テーブルは次のようになります。

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