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.
Syntaxis:
lookup(field_name, match_field_name, match_field_value [, table_name])
Retourgegevenstypen: dual
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. |
Beperkingen:
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.
Voorbeeld:
In de steekproefgegevens wordt de functie Lookup() als volgt gebruikt:
Lookup('Category', 'ProductID', ProductID, 'ProductList')
Voeg het voorbeeldscript toe aan uw document en voer dit uit. Voeg vervolgens ten minste de velden die in de resultatenkolom staan aan een werkblad in uw document 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:
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 |