Konkatenowanie tabel

Konkatenowanie to operacja polegająca na połączeniu dwóch tabel w jedną.

Tabele są jedynie dodawane do siebie, czyli dane nie są modyfikowane, a tabela wynikowa zawiera tyle samo rekordów, co obie tabele wejściowe razem. Możliwe jest wykonanie kilku operacji konkatenowania sekwencyjnie co oznacza, że tabela wynikowa może zostać połączona na podstawie więcej niż dwóch tabel.

Łączenie automatyczne

Jeśli kilka załadowanych tabel jest identycznych pod względem nazw i liczby pól, Qlik Sense dokonuje automatycznego łączenia (scalenia) zawartości różnych instrukcji w jedną tabelę.

Example:  

LOAD a, b, c from table1.csv;

LOAD a, c, b from table2.csv;

Wynikowa tabela wewnętrzna zawiera pola a, b oraz c. Liczba rekordów jest sumą liczb rekordów w tabeli 1 i tabeli 2.

Uwaga: Liczba i nazwy pól muszą być identyczne. Kolejność instrukcji jest dowolna.

Łączenie wymuszone

Nawet jeśli kilka tabel zawiera różne zestawy pól, można nadal wymusić ich łączenie w programie Qlik Sense. W skrypcie służy do tego prefiks concatenate, który dokonuje połączenia tabeli z inną wskazaną z nazwy tabelą lub z ostatnio utworzoną tabelą.

Example:  

LOAD a, b, c from table1.csv;

concatenate LOAD a, c from table2,csv;

 

Wynikowa tabela wewnętrzna zawiera pola a, b oraz c. Liczba rekordów w tabeli wynikowej jest sumą liczb rekordów w tabeli 1 i tabeli 2. Pole b w rekordach pochodzących z tabeli 2 zawiera wartość NULL.

Uwaga: Jeśli w instrukcji concatenate nie zostanie podana nazwa wcześniej załadowanej tabeli, prefiks concatenate użyje ostatnio utworzonej tabeli. Kolejność tych dwóch instrukcji nie jest zatem dowolna.

Zapobieganie łączeniu

Jeśli kilka załadowanych tabel jest identycznych pod względem nazw i liczby pól, Qlik Sense dokonuje automatycznego łączenia (scalenia) treści różnych instrukcji w jedną tabelę. Można temu zapobiec, stosując instrukcję noconcatenate. Tabela załadowana powiązaną z nią instrukcją LOAD lub SELECT nie będzie wtedy łączona z istniejącą tabelą.

Example:  

LOAD a, b, c from table1.csv;

noconcatenate LOAD a, b, c from table2.csv;