Keep
Der Zusatz keep weist Ähnlichkeiten mit dem Zusatz join auf. Wie der join-Zusatz kombiniert er die geladene Tabelle mit einer bestehenden benannten Tabelle oder der zuletzt erstellten Datentabelle, doch statt die geladene Tabelle mit einer bestehenden Tabelle zusammenzuschließen, bewirkt der Zusatz, dass die Tabelle oder beide Tabellen vor dem Speichern in QlikView auf Basis der Schnittmenge der Tabellendaten reduziert werden. Der ausgeführte Vergleich entspricht einer Verknüpfung von Tabellen über alle gemeinsamen Felder, d. h. in gleicher Weise wie bei einer entsprechenden Verknüpfung. Die Tabellen werden jedoch nicht zusammengeschlossen, sondern als zwei Tabellen unter verschiedenen Namen in QlikView gespeichert.
Syntax:
(inner | left | right) keep [(tablename ) ]( loadstatement | selectstatement )
Dem keep-Zusatz muss stets einer der Zusätze inner, left oder right vorangehen.
Der explizite Zusatz join im QlikView-Skript bewirkt eine vollständige Zusammenfügung der beiden Tabellen, d. h. die beiden Tabellen werden zu einer zusammengeschlossen. Dies führt oft zu umfangreichen und speicherintensiven Tabellen. Einer der großen Vorteile von QlikView besteht aber gerade darin, dass automatisch Verknüpfungen zwischen Tabellen hergestellt werden, ohne dass eine Zusammenfügung erfolgt. Dadurch wird in erheblichem Umfang Speicherplatz gespart, die Zugriffszeiten verkürzen sich, und das System behält eine hohe Flexibilität. Aus diesem Grund sollten Sie in QlikView-Skripten im Allgemeinen auf explizite Zusammenfügungen verzichten. Durch den keep-Zusatz reduziert sich zusätzlich die Zahl der Fälle, in denen explizite Zusammenfügungen benötigt werden.
Argumente:
Argument | Beschreibung |
---|---|
tablename | Die benannte Tabelle, die mit der geladenen Tabelle verglichen wird. |
loadstatement oder selectstatement | Der LOAD- oder SELECT-Befehl für die geladene Tabelle. |
Beispiel:
Inner Keep LOAD * from abc.csv;
Left Keep SELECT * from table1;
tab1:
LOAD * from file1.csv;
tab2:
LOAD * from file2.csv;
.. .. ..
Left Keep (tab1) LOAD * from file3.csv;