Keep
Prefixet keep liknar prefixet join. Precis som prefixet join jämför det här prefixet den inlästa tabellen med en befintlig namngiven tabell eller den senaste tidigare skapade datatabellen, men i stället för att koppla ihop den inlästa tabellen med en befintlig tabell gör den så att den ena eller båda tabellerna minskas innan de sparas i QlikView, baserat på intersektionen av tabelldata. Jämförelsen som görs motsvarar en naturlig länkning (join) som görs över alla gemensamma fält. Den görs med andra ord likadant som en motsvarande join. Skillnaden är dock att de två tabellerna inte länkas utan lagras i QlikView som två tabeller med olika namn.
Syntax:
(inner | left | right) keep [(tablename ) ]( loadstatement | selectstatement )
Prefixet keep måste inledas med något av följande prefix: inner, left eller right.
Det explicita prefixet join i QlikViews skriptspråk skapar en fullständig länkning (full join) mellan de båda tabellerna. Resultatet är en tabell. I många fall resulterar sådana länkningar i mycket stora tabeller. En av finesserna med QlikView är just att programmet gör associationer mellan flera tabeller istället för att skapa länkningar, vilket minskar minnesanvändningen avsevärt, ökar hastigheten och ger större flexibilitet. Explicita länkningar bör därför normalt undvikas i QlikView-skript. Keep-funktionaliteten har utvecklats för att minska antalet fall där man måste använda länkning.
Argument:
Argument | Beskrivning |
---|---|
tablename | Namnet på den tabell som ska jämföras med den inlästa tabellen. |
loadstatement eller selectstatement | LOAD- eller SELECT-satsen för den laddade tabellen. |
Exempel:
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;