從先前載入的表格載入資料
從已載入表格中載入並轉換資料有兩種方法。
- Resident LOAD - 您可以在隨後的 LOAD 陳述式中使用 Resident 述詞,以載入新表格。
- 前置 LOAD - 您從前置 LOAD 或 SELECT 陳述式中載入而不指定來源。
Resident 或前置 LOAD?
大多數情況下,使用任一方法都可以得到相同的結果。前置 LOAD 通常是更快的選擇,但在以下一些情況中,您需要使用 Resident LOAD:
- 如果您想要在處理 LOAD 陳述式之前,使用 Order_by 子句來排序記錄。
- 如果您想要在不支援前置 LOAD 的情況下,使用下列任何前置詞:
- Crosstable
- Join
- Intervalmatch
Resident LOAD
您可以在 LOAD 陳述式中使用 Resident 述詞,從先前載入的表格中載入資料。當您想要對使用 SELECT 陳述式載入的資料執行計算,但是您無法使用 Qlik Sense 函數 (例如資料或數值處理) 時,這很有用。
範例:
在此範例中,在 Resident 載入中執行資料解譯,因為無法在起始 Crosstable LOAD 中完成它。
前置 LOAD
前置 LOAD 特性可讓您一次性載入一個表格,但是仍定義數個後續轉換。基本上,它是 LOAD 陳述式,從下方的 LOAD 或 SELECT 陳述式載入,而不指定您通常執行的來源限定詞,例如 From 或 Resident。您可以使用此方法堆疊任何數目的 LOAD 陳述式。將首先評估位於下層的陳述式,然後是其上的陳述式,以此類推,直到評估完成上層陳述式為止。
您可以使用 Resident 實現相同的結果,但是在大部分情況下,前置 LOAD 速度將更快。
前置載入的另一個優勢是您可以在一個位置儲存計算,並在上方放置的 LOAD 陳述式中重複使用它。
範例 1: 轉換由 SELECT 陳述式載入的資料
如果您使用 SELECT 陳述式從資料庫載入資料,則不能使用 Qlik Sense 函數,在 SELECT 陳述式中解譯資料。解決方案是在 SELECT 陳述式上方新增 LOAD 陳述式,您可以從中執行資料轉換。
在此範例中,我們使用 LOAD 陳述式中的 Qlik Sense 函數 Date# 將儲存的日期解譯為字串,使用前一個 SELECT 陳述式作為來源。
範例 2: 透過重複使用計算來簡化指令碼
在此範例中,我們在指令碼中多次使用計算:
透過在第一次通過時引進計算,我們可以在前置 LOAD 中的 Age 函數內重複使用它:
前置載入的限制
- 下列前置詞不能與前置 LOAD:Join、Crosstable 和 Intervalmatch 搭配使用。
- 若您正在使用 distinct 載入獨特記錄,則需要將 distinct 置於第一個 LOAD 陳述式,如同 distinct 僅影響目的地表格。