Mapping

mapping 前置詞可用來建立對應表格,例如用於在指令碼執行期間取代欄位值和欄位名稱。

Syntax:  

Mapping( loadstatement | selectstatement )

 

mapping 前置詞可以放在 LOADSELECT 陳述式的前面,而且將載入陳述式的結果另存為對應表格。對應提供有效的方法在指令碼執行期間替換欄位值,例如,將 US、U.S. 或 America 替換為 USA。對應表由兩個資料行組成,第一個包含比較值,第二個包含所需的對應值。對應表會暫時儲存在記憶體中,並且在指令碼執行後自動捨棄。

例如,使用 Map … Using 陳述式、Rename Field 陳述式、Applymap() 函數或 Mapsubstring() 函數,即可存取對應表格的內容。

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