ApplyMap - スクリプト関数
ApplyMap スクリプト関数は、以前ロードされたマッピング テーブルの数式のアウトプットのマッピングに使用されます。
構文:
ApplyMap('map_name', expression [ , default_mapping ] )
戻り値データ型: デュアル
引数:
引数 | 説明 |
---|---|
map_name |
以前に mapping load または mapping select ステートメントで作成されたマッピング テーブルの名前です。この名前は、単一引用符で囲む必要があります。 警告メモマクロが展開された変数でこの関数を使用して、存在しないマッピング テーブルを参照した場合、関数呼び出しは失敗し、フィールドは作成されません。
|
expression | 結果がマッピングされる数式です。 |
default_mapping |
指定された場合、この値は、マッピング テーブルに expression に一致する値が存在しない場合、デフォルトの値として使用されます。指定されない場合は、expression の値がそのまま返されます。 |
警告メモ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 |