Ga naar hoofdinhoud

LookUp - scriptfunctie

Lookup() zoekt u een tabel die al is geladen en retourneert de waarde van field_name die overeenkomt met het eerste exemplaar van de waarde match_field_value in het veld match_field_name. De tabel kan de huidige tabel zijn of een andere tabel die eerder is geladen.

Syntax:  

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

Return data type: dual

Arguments:  

Argumenten
Argument Beschrijving
field_name Naam van het veld waarvoor de retourwaarde is vereist.De invoerwaarde moet worden aangegeven als een tekenreeks (bijvoorbeeld literal tussen aanhalingstekens).
match_field_name Naam van het veld waarin match_field_value moet worden opgezocht. De invoerwaarde moet worden aangegeven als een tekenreeks (bijvoorbeeld literal tussen aanhalingstekens).
match_field_value Waarde die moet worden opgezocht in het veld match_field_name.
table_name

Naam van de tabel waarin de waarde moet worden opgezocht. De invoerwaarde moet worden aangegeven als een tekenreeks (bijvoorbeeld literal tussen aanhalingstekens).

Als table_name wordt weggelaten, wordt de huidige tabel aangenomen.

Opmerking: Argumenten zonder aanhalingstekens verwijzen naar de huidige tabel. Als u naar andere tabellen wilt verwijzen, zet u een argument tussen enkele aanhalingstekens.

Limitations:  

De volgorde waarin de zoekopdracht wordt uitgevoerd is de laadvolgorde, tenzij de tabel het resultaat is van complexe bewerkingen, zoals joins, waarbij de volgorde niet goed is gedefinieerd. Zowel field_name als match_field_name moeten velden in dezelfde tabel zijn, aangegeven met table_name.

Als geen waarde wordt gevonden, wordt NULL geretourneerd.

In de steekproefgegevens wordt de functie Lookup() als volgt gebruikt:

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

Voeg het voorbeeldscript toe aan uw app en voer het uit. Voeg vervolgens de velden die in de resultatenkolom staan aan een werkblad in uw app toe om het resultaat te bekijken.

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

 

De tabel ProductList wordt als eerste geladen.

De functie Lookup() wordt gebruikt voor het maken van de tabel OrderData. Hiermee wordt het derde argument opgegeven als ProductID. Dit is het veld waarvoor de waarde moet worden opgezocht in het tweede argument 'ProductID' in de ProductList, zoals aangegeven door de enkele aanhalingstekens er omheen.

De functie retourneert de waarde voor 'Category' (in de tabel ProductList), geladen als CategoryID.

Met de opdracht drop wordt de tabel ProductList verwijderd uit het gegevensmodel, omdat deze niet vereist is. Nu blijft de tabel OrderData over met het volgende resultaat:

Resultaattabel
ProductID InvoiceID CustomerID Eenheden: 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
Opmerking: De functie Lookup() is flexibel en kan toegang verkrijgen tot elke eerder geladen tabel. Deze functie is echter traag in vergelijking met de functie Applymap().