LookUp - skriptfunktion
Lookup() letar in i en tabell som redan är laddad och returnerar värdet av field_name vilket motsvarande den första förekomsten av värdet match_field_value i fältet match_field_name. Tabellen kan vara den aktuella tabell eller en annan tabell som har laddats.
Syntax:
lookup(field_name, match_field_name, match_field_value [, table_name])
Returnerad datatyp: dual
Argument:
Argument | Beskrivning |
---|---|
field_name | Namnet på det fält för vilket returvärdet krävs.Inmatat värde måste anges som en sträng (t ex en litteral inom citationstecken). |
match_field_name | Namnet på fältet som match_field_value ska sökas i. Inmatat värde måste anges som en sträng (t ex en litteral inom citationstecken). |
match_field_value | Värdet som ska sökas upp i match_field_name-fältet. |
table_name |
Namnet på tabellen där värdet ska sökas. Inmatat värde måste anges som en sträng (t.ex. en litteral inom citationstecken). Om table_name utelämnas, antas aktuell tabell. |
Begränsningar:
Sökordningen är densamma som laddningsordningen, såvida inte tabellen är resultatet av komplexa operationer som join-operationer. I så fall är ordningen inte väldefinierad. Både field_name och match_field_name måste vara fält i samma tabell, som angivet med table_name.
Om ingen motsvarighet påträffas, returneras NULL.
Exempel:
Exempeldata använder Lookup()-funktionen i följande form:
Lookup('Category', 'ProductID', ProductID, 'ProductList')
Lägg till exempelskriptet i dokumentet och kör det. Lägg sedan till åtminstone de fält som listas i resultatkolumnen på ett ark i dokumentet för att se resultatet.
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
ProductList-tabellen laddas föst.
Lookup()-funktionen används för att bygga OrderData-tabellen. Den anger det tredje argumentet som ProductID. Detta är det fält för vilket en sökning efter värdet ska göras i det andra argumentet 'ProductID' i ProductList enligt vad som anges av de omgivande enkla citattecknen.
Funktionen returnerar värdet för "Category" (i tabellen ProductList), laddad som CategoryID.
drop-satsen tar bort ProductList-tabellen från datamodellen, eftersom den inte krävs, vilket ger OrderData-tabellen följande resultat:
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 |