ApplyMap - スクリプト関数
ApplyMap スクリプト関数は、以前ロードされたマッピング テーブルの数式のアウトプットのマッピングに使用されます。
構文:
ApplyMap('map_name', expression [ , default_mapping ] )
戻り値データ型: dual
引数:
引数 | 説明 |
---|---|
map_name |
以前に mapping load または mapping select ステートメントで作成されたマッピング テーブルの名前です。この名前は、単一引用符で囲む必要があります。 警告メモこの関数をマクロ展開の変数で使用し、存在しないマッピング テーブルを参照する場合、関数呼び出しが失敗して項目は作成されません。
|
expression | 結果がマッピングされる数式です。 |
default_mapping |
指定された場合、この値は、マッピング テーブルに expression に一致する値が存在しない場合、既定値として使用されます。指定されない場合は、expression の値がそのまま返されます。 |
警告メモApplyMap の出力項目の名前は、ApplyMap の入力項目の名前と同じにしないようにする必要があります。同じにすると予期しない結果になる可能性があります。使用しない例:ApplyMap('Map', A) as A。
この例では、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';
出力されるテーブル (Salespersons) は次にようになります。
Salesperson | Country |
---|---|
John | Sweden |
Mary | Sweden |
Per | Sweden |
Preben | Denmark |
Olle | Denmark |
Ole | Norway |
Risttu | Rest of the world |