# Concatenate

`Concatenate` to prefiks ładowania skryptu, który umożliwia dołączenie zestawu danych do tabeli znajdującej się w pamięci. Często używa się go w celu dołączania różnych zestawów danych transakcyjnych do jednej centralnej tabeli faktów lub do budowy wspólnych zestawów danych odniesienia określonego typu, które pochodzą z wielu źródeł. Jego funkcjonalność jest podobna do sposobu działania operatora SQL UNION.

Tabela wyników operacji `concatenate` będzie zawierała oryginalny zestaw danych z nowymi wierszami danych dołączonymi na końcu. Tabele źródłowa i docelowa mogą zawierać różne pola. Tam, gdzie pola się różnią, tabela wynikowa zostanie rozszerzona w celu zaprezentowania połączonego wyniku wszystkich pól obecnych zarówno w tabeli źródłowej, jak i docelowej.

Składnia:

Concatenate[ (tablename ) ] ( loadstatement | selectstatement )

Argumenty

| Argument | Opis |
| --- | --- |
| ` tablename  ` | Nazwa istniejącej tabeli. Wymieniona tabela będzie tabelą docelową operacji `Concatenate` i wszystkie rekordy załadowanych danych zostaną dodane do tej tabeli. Jeśli parametr `tablename` nie zostanie użyty, tabela docelowa będzie ostatnią załadowaną tabelą przed tym poleceniem. |
| ` loadstatement/selectstatement  ` | Argument `loadstatement/selectstatement` znajdujący się za argumentem `tablename` zostanie dołączony do określonej tabeli. |

## Ustawienia regionalne

Jeżeli nie podano inaczej, w przykładach w tym temacie stosowany jest następujący format daty: MM/DD/RRRR. Format daty jest określony w instrukcji `SET DateFormat` w skrypcie ładowania danych. Domyślny format daty w Twoim systemie może być inny ze względu na ustawienia regionalne i inne czynniki. Formaty zastosowane w przykładach można zmienić, aby dostosować je do własnych wymagań. Zamiast tego można też zmienić formaty w skrypcie ładowania, aby pasowały do tych przykładów.

Domyślne ustawienia regionalne w aplikacjach są oparte na regionalnych ustawieniach systemu komputera lub serwera, na którym zainstalowano Qlik Sense. Jeśli serwer Qlik Sense, do którego uzyskujesz dostęp, jest ustawiony na Szwecję, Edytor ładowania danych użyje szwedzkich ustawień regionalnych dla dat, godziny i waluty. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Sense. Interfejs Qlik Sense będzie wyświetlany w tym samym języku co używana przeglądarka.

Przykład funkcji

| Przykład | Wynik |
| --- | --- |
| `Concatenate(Transactions)<br><br>Load …. ;` | Dane załadowane w instrukcji LOAD pod przedrostkiem `Concatenate` zostaną dodane do istniejącej w pamięci tabeli o nazwie `Transactions` (przy założeniu, że tabela o nazwie `Transactions` została wcześniej załadowana w skrypcie ładowania). |

## Przykład 1 – Dołączanie kilku zestawów danych do tabeli docelowej za pomocą przedrostka ładowania Concatenate

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/concatenate.htm)

#### Skrypt ładowania i wyniki

Przegląd

W tym przykładzie załadujemy dwa skrypty po kolei.

* Pierwszy skrypt ładowania zawiera początkowy zestaw danych zawierający daty i kwoty, który został wysłany do tabeli o nazwie `Transactions`.

* Drugi skrypt ładowania zawiera następujące elementy:

  * Drugi zestaw danych, który jest dołączony do pierwszego za pomocą przedrostka `Concatenate`. Ten zestaw danych ma dodatkowe pole, `type`, którego nie ma w pierwszym zestawie danych.
  * Prefiks `Concatenate`.

Otwórz edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Pierwszy skrypt ładowania

```

Transactions: 
Load * Inline [ 

id, date, amount 
3750, 08/30/2018, 23.56 
3751, 09/07/2018, 556.31 
3752, 09/16/2018, 5.75 
3753, 09/22/2018, 125.00 
3754, 09/22/2018, 484.21 
3756, 09/22/2018, 59.18 
3757, 09/23/2018, 177.42 
]; 
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`

* `date`

* `amount`

Tabela wyników pierwszego skryptu ładowania

| id | date | amount |
| --- | --- | --- |
| 3750 | 08/30/2018 | 23.56 |
| 3751 | 09/07/2018 | 556.31 |
| 3752 | 09/16/2018 | 5.75 |
| 3753 | 09/22/2018 | 125.00 |
| 3754 | 09/22/2018 | 484.21 |
| 3756 | 09/22/2018 | 59.18 |
| 3757 | 09/23/2018 | 177.42 |

Tabela przedstawia pierwszy zestaw danych.

Drugi skrypt ładowania

Otwórz edytor ładowania danych i poniżej dodaj skrypt ładowania.

```

Concatenate(Transactions) 
Load * Inline [ 
id, date, amount, type 
3758, 10/01/2018, 164.27, Internal 
3759, 10/03/2018, 384.00, External 
3760, 10/06/2018, 25.82, Internal 
3761, 10/09/2018, 312.00, Internal 
3762, 10/15/2018, 4.56, Internal 
3763, 10/16/2018, 90.24, Internal 
3764, 10/18/2018, 19.32, External 
]; 
```

Wyniki

Załaduj dane i przejdź do arkusza. Utwórz to pole jako wymiar:

* `type`

Tabela wyników drugiego skryptu ładowania

| id | date | amount | type |
| --- | --- | --- | --- |
| 3750 | 08/30/2018 | 23.56 | - |
| 3751 | 09/07/2018 | 556.31 | - |
| 3752 | 09/16/2018 | 5.75 | - |
| 3753 | 09/22/2018 | 125.00 | - |
| 3754 | 09/22/2018 | 484.21 | - |
| 3756 | 09/22/2018 | 59.18 | - |
| 3757 | 09/23/2018 | 177.42 | - |
| 3758 | 10/01/2018 | 164.27 | Wewnętrzne |
| 3759 | 10/03/2018 | 384.00 | Zewnętrzne |
| 3760 | 10/06/2018 | 25.82 | Wewnętrzne |
| 3761 | 10/09/2018 | 312.00 | Wewnętrzne |
| 3762 | 10/15/2018 | 4.56 | Wewnętrzne |
| 3763 | 10/16/2018 | 90.24 | Wewnętrzne |
| 3764 | 10/18/2018 | 19.32 | Zewnętrzne |

Zwróć uwagę na puste wartości w polu `type` dla siedmiu pierwszych załadowanych rekordów, w których nie zdefiniowano argumentu `type`.

## Przykład 2 – Dołączanie kilku zestawów danych do tabeli docelowej za pomocą konkatenacji niejawnej

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/concatenate.htm)

#### Skrypt ładowania i wyniki

Przegląd

Typowy przypadek użycia niejawnego dodawania danych to sytuacja, w której ładujemy kilka plików danych o identycznej strukturze i chcemy dołączyć je wszystkie do tabeli docelowej.

Na przykład przy użyciu `wildcards` w nazwach plików przy użyciu następującej składni:

```
	 myTable: 
	  Load * from [myFile_*.qvd] (qvd); 
						
```

lub w pętlach wykorzystujących następujące konstrukcje:

```

	for each file in filelist('myFile_*.qvd') 

	myTable: 
	Load * from [$(file)] (qvd); 

	next file 
```

InformacjaKonkatenacja niejawna zostanie wykonana między każdymi dwiema załadowanymi tabelami, które mają pola o identycznych nazwach, nawet jeśli nie są one zdefiniowane jedna po drugiej w skrypcie. To może doprowadzić do nieumyślnego dodania danych do tabel. Jeśli nie chcesz, aby dodatkowa tabela z identycznymi polami została w ten sposób dołączona, użyj prefiksu ładowania `NoConcatenate`. Zmiana nazwy tabeli przez dodanie alternatywnego znacznika nie wystarczy, aby zapobiec niejawnej konkatenacji. Więcej informacji zawiera temat [NoConcatenate](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/NoConcatenate.htm).

W tym przykładzie załadujemy dwa skrypty po kolei.

* Pierwszy skrypt ładowania zawiera początkowy zestaw danych zawierający cztery pola, który został wysłany do tabeli o nazwie `Transactions`.

* Drugi skrypt ładowania zawiera zestaw danych zawierający te same pola, co pierwszy zestaw danych.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Pierwszy skrypt ładowania

```

Transactions: 
Load * Inline [ 
id, date, amount, type 
3758, 10/01/2018, 164.27, Internal 
3759, 10/03/2018, 384.00, External 
3760, 10/06/2018, 25.82, Internal 
3761, 10/09/2018, 312.00, Internal 
3762, 10/15/2018, 4.56, Internal 
3763, 10/16/2018, 90.24, Internal 
3764, 10/18/2018, 19.32, External 
]; 
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`

* `date`

* `amount`

* `type`

Tabela wyników pierwszego skryptu ładowania

| id | date | type | amount |
| --- | --- | --- | --- |
| 3758 | 10/01/2018 | Wewnętrzne | 164.27 |
| 3759 | 10/03/2018 | Zewnętrzne | 384.00 |
| 3760 | 10/06/2018 | Wewnętrzne | 25.82 |
| 3761 | 10/09/2018 | Wewnętrzne | 312.00 |
| 3762 | 10/15/2018 | Wewnętrzne | 4.56 |
| 3763 | 10/16/2018 | Wewnętrzne | 90.24 |
| 3764 | 10/18/2018 | Zewnętrzne | 19.32 |

Tabela przedstawia pierwszy zestaw danych.

Drugi skrypt ładowania

Otwórz edytor ładowania danych i poniżej dodaj skrypt ładowania.

```

Load * Inline [ 
id, date, amount, type 
3765, 11/03/2018, 129.40, Internal 
3766, 11/05/2018, 638.50, External 
]; 
```

Wyniki

Załaduj dane i przejdź do arkusza.

Tabela wyników drugiego skryptu ładowania

| id | date | type | amount |
| --- | --- | --- | --- |
| 3758 | 10/01/2018 | Wewnętrzne | 164.27 |
| 3759 | 10/03/2018 | Zewnętrzne | 384.00 |
| 3760 | 10/06/2018 | Wewnętrzne | 25.82 |
| 3761 | 10/09/2018 | Wewnętrzne | 312.00 |
| 3762 | 10/15/2018 | Wewnętrzne | 4.56 |
| 3763 | 10/16/2018 | Wewnętrzne | 90.24 |
| 3764 | 10/18/2018 | Zewnętrzne | 19.32 |
| 3765 | 11/03/2018 | Wewnętrzne | 129.40 |
| 3766 | 11/05/2018 | Zewnętrzne | 638.50 |

Drugi zestaw danych został niejawnie dołączony do pierwszego zestawu, ponieważ oba te zestawy zawierają identyczne pola.