LookUp - funzione di script
Lookup() osserva una tabella già caricata e restituisce il valore di field_name corrispondente alla prima occorrenza del valore match_field_value nel campo match_field_name. La tabella può essere la tabella attuale o un'altra tabella caricata in precedenza.
Sintassi:
lookup(field_name, match_field_name, match_field_value [, table_name])
Tipo di dati restituiti: duale
Argomenti:
Argomento | Descrizione |
---|---|
field_name | Nome del campo per cui è richiesto il valore restituito.Il valore di input deve essere specificato come stringa (ad esempio, un valore letterale tra virgolette). |
match_field_name | Nome del campo in cui ricercare match_field_value. Il valore di input deve essere specificato come stringa (ad esempio, un valore letterale tra virgolette). |
match_field_value | Valore da ricercare nel campo match_field_name. |
table_name |
Nome della tabella in cui ricercare il valore. Il valore di input deve essere specificato come stringa (ad esempio un valore letterale tra virgolette). Se il valore table_name viene omesso, verrà utilizzata la tabella attuale. |
Limiti:
L'ordine in cui viene eseguita la ricerca è l'ordine di caricamento, a meno che la tabella non sia il risultato di operazioni complesse come unioni, nel qual caso l'ordine non sarà definito in modo preciso. Sia field_name che match_field_name devono essere campi della stessa tabella, specificata da table_name.
Se non viene trovata una corrispondenza, viene restituito il valore NULL.
Esempio:
I dati campione utilizzano la funzione Lookup() con il seguente formato:
Lookup('Category', 'ProductID', ProductID, 'ProductList')
Aggiungere lo script di esempio al documento ed eseguirlo. Aggiungere quindi a un foglio del documento almeno i campi elencati nella colonna dei risultati per visualizzare il risultato.
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
Viene prima caricata la tabella ProductList.
La funzione Lookup() viene utilizzata per creare la tabella OrderData. Specifica il terzo argomento come ProductID. Si tratta del campo per cui il valore deve essere ricercato nel secondo argomento 'ProductID' in ProductList, come indicato dalle virgolette singole che lo racchiudono.
La funzione restituisce il valore per 'Category' (nella tabella ProductList), caricata come CategoryID.
L'istruzione drop elimina la tabella ProductList dal modello dati poiché non è richiesta, facendo sì che la tabella OrderData presenti il risultato seguente:
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 |