ApplyMap - 指令碼函數

ApplyMap 指令碼函數用於將某個運算式的輸出對應到先前載入的對應表。

Syntax:  

ApplyMap('map_name', expression [ , default_mapping ] )

Return data type: 雙值

Arguments:  

引數 描述
map_name

先前已透過 mapping loadmapping select 陳述式建立之對應表格的名稱。其名稱必須以一般單引號括住。

警告: 若您在巨集擴展變數中使用此函數,並參考不存在的對應表格,則函數叫用會失敗,且不會建立欄位。
expression 應該對應其結果的運算式。
default_mapping

如果指定,則當對應表格未包含 expression 的相符值時,此值將用作預設值。如果未指定,則將按原樣傳回 expression 的值。

警告: ApplyMap 輸出欄位的名稱不可與其中一個輸出欄位的名稱相同。這可能會造成意外結果。不可使用的範例:ApplyMap('Map', A) as A

Example:  

在此範例中,我們載入銷售人員清單,並使用國家/地區代碼表示其居住國家/地區。我們使用表格將國家/地區代碼對應至國家/地區,將國家/地區代碼取代為國家/地區名稱。對應表格中僅定義三個國家/地區,其他國家/地區代碼對應至 '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