Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

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ą.

Składnia:  

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

Typ zwracanych danych: podwójny

Argumenty:  

Argumenty LookUp
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.

InformacjaArgumenty 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.

Ograniczenia:  

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ład:  

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

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

Dodaj przykładowy skrypt do dokumentu i uruchom go. Następnie dodaj do arkusza w swoim dokumencie co najmniej 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:

Wyniki przykładu 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
InformacjaFunkcja 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().

Dowiedz się więcej

 

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!

Dołącz do Programu Modernizacji Analityki

Remove banner from view

Przeprowadź modernizację bez szkody dla Twoich cennych aplikacji QlikView za pomocą programu Analytics Modernization Program. Kliknij tutaj aby uzyskać więcej informacji lub skontaktuj się z nami: ampquestions@qlik.com