マッピング
mapping プレフィックスは、マッピング テーブルの作成に使用します。マッピング テーブルは、スクリプト実行中に項目値と項目名を置き換えるといった操作で使用できます。
構文:
Mapping( loadstatement | selectstatement )
mapping プレフィックスは LOAD または SELECT ステートメントの前に入れることができ、ロード ステートメントの結果をマッピング テーブルとして保存します。マッピングは、US や U.S.、アメリカの USA への置換など、スクリプト実行中に項目の値を置き換える効果的な方法です。マッピング テーブルは 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 |