Keep
Le préfixe keep est semblable au préfixe join. Tout comme le préfixe join, il compare la table chargée à une table nommée existante ou à la dernière table de données créée. Cependant, au lieu de joindre la table chargée à une table existante, il a pour effet de réduire une ou les deux tables avant qu'elles ne soient stockées dans QlikView, en fonction de l'intersection des données des tables. La comparaison effectuée équivaut à une jonction naturelle entre tous les champs communs, c.-à-d. de la même manière que dans une jonction correspondante. Cependant, les deux tables ne sont pas jointes et sont conservées dans QlikView comme deux tables nommées distinctes.
(inner | left | right) keep [(tablename ) ]( loadstatement | selectstatement )
Le préfixe keep doit toujours être précédé par l'un des préfixes inner, left ou right.
Le préfixe join explicite du langage de script de QlikView procède à une jointure complète des deux tables. Le résultat en est une seule table. De telles jointures produisent bien souvent des tables très volumineuses. L'une des principales caractéristiques de QlikView est sa capacité à effectuer des associations entre plusieurs tables au lieu de les joindre, ce qui réduit considérablement l'utilisation de la mémoire, augmente la vitesse de traitement et offre une grande souplesse. Il est donc généralement recommandé de ne pas utiliser de jointures explicites dans les scripts QlikView. La fonctionnalité keep a été conçue pour réduire le nombre de cas d'utilisation de jointures explicites.
Argument | Description |
---|---|
tablename | Table nommée à comparer à la table chargée. |
loadstatement ou selectstatement | Instruction LOAD ou SELECT de la table chargée. |
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;