LookUp - Skriptfunktion
Lookup() sucht in einer bereits geladenen Tabelle und liefert den Wert des Feldes field_name, der dem ersten Auftreten des Werts match_field_value im Feld match_field_name zugehörig ist. Bei der Tabelle kann es sich um die aktuelle Tabelle oder eine andere zuvor geladene Tabelle handeln.
Syntax:
lookup(field_name, match_field_name, match_field_value [, table_name])
Rückgabe Datentyp: dual
Argumente:
Argument | Beschreibung |
---|---|
field_name | Name für das Feld, für das der Rückgabewert erforderlich ist.Eingabewert muss als String angegeben werden (zum Beispiel in einfachen Anführungszeichen). |
match_field_name | Name des Felds, in dem match_field_value aufgerufen werden soll. Eingabewert muss als String angegeben werden (zum Beispiel in einfachen Anführungszeichen). |
match_field_value | Wert, der im Feld match_field_name aufgerufen werden soll. |
table_name |
Name der Tabelle, in welcher der Wert aufgerufen werden soll. Eingabewert muss als String angegeben werden (zum Beispiel in einfachen Anführungszeichen). Ist table_name nicht angegeben, sucht das Programm in der aktuellen Tabelle. |
Beschränkungen:
Die Reihenfolge, in der die Suche erfolgt, entspricht der Lade-Reihenfolge, sofern die Tabelle nicht durch komplexe Operationen wie etwa Joins entsteht. field_name und match_field_name müssen beide Felder derselben Tabelle table_name sein.
Wird keine Übereinstimmung gefunden, ist das Ergebnis NULL.
Beispiel:
Die Beispieldaten verwenden die Funktion Lookup() in der folgenden Form:
Lookup('Category', 'ProductID', ProductID, 'ProductList')
Fügen Sie Ihrem Dokument das Beispielskript hinzu und führen Sie sie aus. Fügen Sie einem Arbeitsblatt in Ihrem Dokument dann mindestens diejenigen Felder hinzu, die in der Ergebnisspalte aufgeführt sind, um das Ergebnis anzuzeigen.
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
Die Tabelle ProductList wird zuerst geladen.
Die Funktion Lookup() wird zum Erstellen der Tabelle OrderData verwendet. Sie legt das dritte Argument als ProductID fest. Das ist das Feld, für das der Wert im zweiten Argument 'ProductID' in der ProductList gesucht wird, wie durch die einfachen Anführungszeichen angegeben wurde.
Die Funktion liefert den Wert für 'Category' (in der Tabelle ProductList), geladen als CategoryID.
Der Befehl drop löscht die Tabelle ProductList aus dem Datenmodell, weil sie nicht erforderlich ist, wodurch die Tabelle OrderData mit dem folgenden Ergebnis bleibt:
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 |