對應
mapping 前置詞可用來建立對應表,例如,對應表可用於在指令碼執行期間取代欄位值和欄位名稱。
語法:
Mapping( loadstatement | selectstatement )
mapping 前置詞可以放在 LOAD 或 SELECT 陳述式的前面,而且將載入陳述式的結果另存為對應表格。對應提供有效的方法在指令碼執行期間替換欄位值,例如,將 US、U.S. 或 America 替換為 USA。對應表由兩個資料行組成,第一個包含比較值,第二個包含所需的對應值。對應表會暫時儲存在記憶體中,並且在指令碼執行後自動捨棄。
例如,使用 Map … Using 陳述式、Rename Field 陳述式、Applymap() 函數或 Mapsubstring() 函數,即可存取對應表格的內容。
範例:
在此範例中,我們載入銷售人員清單,並使用國家/地區代碼表示其居住國家/地區。我們使用表格將國家/地區代碼對應至國家/地區,將國家/地區代碼取代為國家/地區名稱。對應表格中僅定義三個國家/地區,其他國家/地區代碼對應至 '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 |