メイン コンテンツをスキップする

LookUp - スクリプト関数

このページ上

LookUp - スクリプト関数

Lookup() は、すでにロードされているテーブルを参照し、項目 match_field_name における値 match_field_value の最初の出現に対応する field_name の値を返します。テーブルは、現在のテーブルまたは前にロードして別のテーブルにすることができます。

Syntax:  

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

Return data type: dual

Arguments:  

引数
引数 説明
field_name 戻り値が必要な項目名。入力値は文字列として指定する必要があります (たとえば、引用符で囲まれた文字列)。
match_field_name match_field_value を検索する項目の名前。 入力値は文字列として指定する必要があります (たとえば、引用符で囲まれた文字列)。
match_field_value match_field_name 項目で検索する値。
table_name

値を検索するテーブルの名前。入力値は文字列として指定する必要があります (例えば、引用符で囲まれた文字列)。

table_name が省略されている場合は、現在のテーブルとして処理されます。

注: 引数に引用符がない場合、現在のテーブルを参照します。他のテーブルを参照するには、引数を単一引用符で囲みます。

Limitations:  

連結などの複雑な操作の結果テーブルでは、検索順は明確に定義されませんが、それ以外の場合、検索はロード順に実行されます。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 テーブルが構築されます。この関数では、3 番目の引数として、ProductID が指定されていますProductList'ProductID' (単一引用符で囲まれた 2 番目の引数) で、この項目の値が検索されます。

関数は、'Category' (ProductList テーブル) の値を CategoryID.としてロードして返します。

drop ステートメントは、不要になった ProductList テーブルをデータ モデルから削除します。以下の結果を持つ OrderData テーブルが残ります。

結果のテーブル
ProductID InvoiceID CustomerID ユニット: 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() 関数と比べると、処理に時間がかかります。