Gå till huvudinnehåll Gå till ytterligare innehåll

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:  

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

Anteckning om informationArgument utan citattecken syftar på den aktuella tabellen. Om du vill hänvisa till andra tabeller omger du ett argument med enkla citattecken.

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:

Resultat för exempel 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
Anteckning om information Lookup()-funktionen är flexibel och kan komma åt alla tabeller som laddats tidigare. Det går dock långsamt jämfört med Applymap()-funktionen.

Mer information

 

Var den här sidan till hjälp för dig?

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!

Gå med i programmet Analytics Modernization

Remove banner from view

Modernisera utan att kompromissa med dina värdefulla QlikView-appar med programmet för analysmodernisering. Klicka här för mer information eller ta kontakt: ampquestions@qlik.com