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