Przeskocz do zawartości głównej

LookUp — funkcja skryptu

Funkcja Lookup() sprawdza załadowaną tabelę i zwraca wartość field_name odpowiadającą pierwszemu wystąpieniu wartości match_field_value w polu match_field_name. Tabela ta może być tabelą bieżącą lub inną wcześniej załadowaną tabelą.

Syntax:  

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

Return data type: dual

Arguments:  

Argumenty
Argument Opis
field_name Nazwa pola, dla którego wymagana jest wartość zwracana.Wartość wejściowa musi być podana jako ciąg znaków (np. jako literał w cudzysłowie).
match_field_name Nazwa pola, w którym wyszukiwana jest wartość match_field_value. Wartość wejściowa musi być podana jako ciąg znaków (np. jako literał w cudzysłowie).
match_field_value Wartość wyszukiwana w polu match_field_name.
table_name

Nazwa tabeli, w której wyszukiwana jest wartość. Wartość wejściowa musi być podana jako ciąg znaków (np. jako literał w cudzysłowie).

Jeśli argument table_name zostanie pominięty, przyjmowana jest bieżąca tabela.

Uwaga: Argumenty bez cudzysłowów odwołują się do bieżącej tabeli. Aby odwołać się do innych tabel, należy ująć argument w pojedyncze cudzysłowy.

Limitations:  

Kolejność wyszukiwania odpowiada kolejności ładowania, chyba że tabela jest wynikiem złożonych operacji, na przykład sprzężeń — w takim przypadku kolejność nie jest dobrze zdefiniowana. field_name i match_field_name muszą określać pola w tej samej tabeli, wskazanej argumentem table_name.

W razie braku dopasowania zwracane jest NULL.

Przykładowe dane używają funkcji Lookup() w następującej formie:

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

Dodaj skrypt przykładowy do aplikacji i uruchom ją. Następnie dodaj do arkusza w swojej aplikacji pola wyszczególnione w kolumnie wyników, aby wyświetlić wynik.

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

 

W pierwszej kolejności ładowana jest tabelaProductList.

Przy użyciu funkcji Lookup() tworzona jest tabela OrderData. Określa ona trzeci argument jako ProductID. Jest to pole, w odniesieniu którego należy wyszukać wartość w drugim argumencie 'ProductID' w tabeli ProductList, na co wskazuje ujęcie w pojedyncze cudzysłowy.

Funkcja zwraca wartość „Category” (w tabeli ProductList), załadowaną jako CategoryID.

Instrukcja drop usuwa tabelę ProductList z modelu danych, ponieważ nie jest wymagana, w wyniku czego uzyskana tabela OrderData zawiera następujący wynik:

Tabela wynikowa
ProductID InvoiceID CustomerID Jednostki: 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
Uwaga: Funkcja Lookup() jest elastyczna i może uzyskać dostęp do każdej wcześniej załadowanej tabeli. Jest jednak wolna w porównaniu z funkcją Applymap().