前置 LOAD

前置LOAD特性可讓您一次性載入一個表格,但是仍定義數個後續轉換。基本上,它是 LOAD陳述式,從下方的 LOADSELECT 陳述式載入,而不指定您通常執行的來源限定詞,例如 FromResident。您可以使用此方法堆疊任何數目的LOAD 陳述式。將首先評估位於底端的陳述式,然後是上述陳述式,以此類推,直到評估完成頂端陳述式為止。

您可以使用 Resident實現相同的結果,但是在大部分情況下,前置 LOAD 速度將更快。

前置載入的另一個優勢是您可以在一個位置儲存計算,並在上方放置的 LOAD陳述式中重複使用它。

備註: 下列前置詞不能與前置 LOADJoinCrosstableIntervalmatch 搭配使用。

範例 1: 轉換由 SELECT陳述式載入的資料

如果您使用 SELECT陳述式從資料庫載入資料,則不能使用 QlikView 函數,在SELECT 陳述式中解譯資料。解決方案是在 SELECT陳述式上方新增 LOAD 陳述式,您可以從中執行資料轉換。

在此範例中,我們使用 LOAD陳述式中的 QlikView 函數 Date# 將儲存的日期解譯為字串,使用前一個 SELECT 陳述式作為來源。

LOAD Date#(OrderDate,’YYYYMMDD’) as OrderDate;
SQL SELECT OrderDate FROM … ;

範例 2: 透過重複使用計算來簡化指令碼

在此範例中,我們在指令碼中多次使用計算:

LOAD ..., Age( FromDate + IterNo() – 1, BirthDate ) as Age, Date( FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;

透過在第一次通過時引進計算,我們可以在前置 LOAD中的 Age 函數內重複使用它:

LOAD ..., ReferenceDate, Age( ReferenceDate, BirthDate ) as Age; LOAD *, Date( FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;