跳到主要內容 跳至補充內容

LookUp - 指令碼函數

Lookup() 會查詢已載入的表格,並且傳回的 field_name 值相當於欄位 match_field_name 中第一次出現的值 match_field_value。表格可以是目前表格或之前載入的其他表格。

語法:  

lookup(field_name, match_field_name, match_field_value [, table_name])

傳回的資料類型: 雙值

引數:  

LookUp 引數
引數 描述
field_name 傳回值需要的欄位名稱。輸入值必須指定為字串 (例如引號中的常值)。
match_field_name 要在其中查閱 match_field_value 之欄位的名稱。 輸入值必須指定為字串 (例如引號中的常值)。
match_field_value 要在 match_field_name 欄位中查閱的值。
table_name

要在其中查閱值的表格名稱。輸入值必須指定為字串 (如引號中的常值)。

如果省略 table_name,則會採用目前表格。

資訊備註不含引號的引數會參考目前表格。若要參考其他表格,請將引數含括在單引號中。

限制:  

搜尋順序為載入順序,除非表格是複雜運算 (如 join) 的結果,若是如此,順序無法明確定義。field_namematch_field_name 必須是相同表格 (以 table_name 指定) 中的欄位。

如果找不到符合的值,則會傳回 NULL

範例:  

範例資料使用下列形式的 Lookup() 函數:

Lookup('Category', 'ProductID', ProductID, 'ProductList')

新增範例指令碼到您的文件中並加以執行。然後至少將結果資料行中所列的欄位新增至您文件中的工作表,以查看結果。

ProductList:

Load * Inline [

ProductID|Product|Category|Price

1|AA|1|1

2|BB|1|3

3|CC|2|8

4|DD|3|2

] (delimiter is '|');

 

OrderData:

Load *, Lookup('Category', 'ProductID', ProductID, 'ProductList') as CategoryID

Inline [

InvoiceID|CustomerID|ProductID|Units

1|Astrida|1|8

1|Astrida|2|6

2|Betacab|3|10

3|Divadip|3|5

4|Divadip|4|10

] (delimiter is '|');

 

Drop Table ProductList

 

首先載入 ProductList 表格。

Lookup() 函數用來建置 OrderData 表格。如果將第三個引數指定為 ProductID。這是將在 ProductList 的第二個引數 'ProductID' 中查閱值的欄位,如含括的單引號所指示。

函數傳回 'Category' (在 ProductList 表格中) 的值,作為 CategoryID 載入。

drop 陳述式會從資料模型中刪除 ProductList 表格,因為不需要該項目,這會留下 OrderData 表格,並具有下列結果:

範例 1 結果
ProductID InvoiceID CustomerID Units CategoryID
1 1 Astrida 8 1
2 1 Astrida 6 1
3 2 Betacab 10 2
3 3 Divadip 5 2
4 4 Divadip 10 3
資訊備註 Lookup() 函數是彈性的,可以存取任何先前載入的表格。然而,它與 Applymap() 函數相比較速度較慢。

瞭解更多資訊

 

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!

加入分析現代化計畫

Remove banner from view

透過分析現代化程式進行現代化而不犧牲寶貴的 QlikView 應用程式。 按一下這裡 取得更多資訊或聯繫: ampquestions@qlik.com