# Concatenate

`Concatenate` 是指令碼載入前置詞，可讓資料集附加至已存在的記憶體內表格。這經常用於將不同組的交易資料附加至單一個中央的事實資料表，或是建置源自多項來源之特定類型的常見參考資料集。這類似 SQL UNION 運算子的功能。

`concatenate` 運算的結果表格包含原始資料集，其具有附加至表格底部的新資料列。來源和目標表格可能會出現不同的欄位。如果欄位不同，即會擴大結果表格以代表出現在來源表格和目標表格之所有欄位的組合結果。

語法：

Concatenate[ (tablename ) ] ( loadstatement | selectstatement )

引數

| 引數 | 描述 |
| --- | --- |
| ` tablename  ` | 現有表格的名稱。命名的表格會是 `Concatenate` 運算的目標，且載入的任何資料記錄都會附加至該表格。如果未使用 `tablename` 參數，則目標表格會是此陳述式前的最後一個載入表格。 |
| ` loadstatement/selectstatement  ` | 追蹤 `tablename` 引數的 `loadstatement/selectstatement` 引述會串連至特定表格。 |

## 區域設定

除非另有說明，否則此主題中的範例皆使用下列日期格式：MM/DD/YYYY。日期格式是在資料載入指令碼的 `SET DateFormat` 陳述式中指定。由於地區設定和其他因素，您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式，以滿足您的需求。或者，您可以在載入指令碼中變更格式，以符合這些範例。

應用程式中的預設地區設定是根據安裝 Qlik Sense 之電腦或伺服器的地區系統設定。若您存取的 Qlik Sense 伺服器設定為瑞典，資料載入編輯器將會對日期、時間和貨幣使用瑞典文地區設定。這些地區格式設定與 Qlik Sense 使用者介面中顯示的語言無關。Qlik Sense 顯示的語言將與您正在使用的瀏覽器相同。

函數範例

| 範例 | 結果 |
| --- | --- |
| `Concatenate(Transactions)<br><br>Load …. ;` | 載入到 `Concatenate` 前置詞下方的資料會附加至名為 `Transactions` 現有記憶體內表格 (假設在載入指令碼的這個點前已載入名為 `Transactions` 的表格)。 |

## 範例 1 – 將多組資料附加至具有串連載入前置詞的目標表格

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

#### 載入指令碼和結果

概覽

在此範例中，您會以連續順序載入兩個指令碼。

* 第一個載入指令碼包含具有日期和金額的初始資料集，其傳送至名為 `Transactions` 的表格中。

* 第二個載入指令碼包含：

  * 第二個資料集使用 `Concatenate` 前置詞附加至初始資料集。此資料集具有其他欄位 `type`，且不位於初始資料集。
  * `Concatenate` 前置詞。

開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。

第一個載入指令碼

```

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 
]; 
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `id`

* `date`

* `amount`

第一個載入指令碼結果表格

| id | 日期 | 金額 |
| --- | --- | --- |
| 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 |

表格顯示初始資料集。

第二個載入指令碼

開啟資料載入編輯器，然後在下方新增載入指令碼。

```

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 
]; 
```

結果

載入資料並前往工作表。將此欄位建立為維度使用。

* `type`

第二個載入指令碼結果表格

| id | 日期 | 金額 | 類型 |
| --- | --- | --- | --- |
| 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 | 內部 |
| 3759 | 10/03/2018 | 384.00 | 外部 |
| 3760 | 10/06/2018 | 25.82 | 內部 |
| 3761 | 10/09/2018 | 312.00 | 內部 |
| 3762 | 10/15/2018 | 4.56 | 內部 |
| 3763 | 10/16/2018 | 90.24 | 內部 |
| 3764 | 10/18/2018 | 19.32 | 外部 |

請注意 `type` 欄位中的 Null 值，前七筆記錄載入時未定義 `type`。

## 範例 2 – 使用隱含串連將多組資料附加至目標表格

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

#### 載入指令碼和結果

概覽

隱含附加資料的一般使用案例即是當您載入相同結構化資料的多個檔案，並想要全部附加至目標表格的時候。

例如，將 `wildcards` 用於具有以下語法的檔案名稱中：

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

或是用於使用以下建構的迴圈中：

```

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

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

	next file 
```

資訊備註隱含串連會發生在任兩個載入相同名稱之欄位的表格之間，即使它們並未在指令碼中互相定義。這會導致資料在無意間附加至表格中。若您不想以此方式附加具有相同欄位的第二個表格，請使用 `NoConcatenate` 載入前置詞。即使將該表格重新命名為替代的表格名稱標記，還是無法預防隱含串連發生。如需詳細資訊，請參閱[NoConcatenate](https://help.qlik.com/zh-TW/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/NoConcatenate.htm)。

在此範例中，您會以連續順序載入兩個指令碼。

* 第一個載入指令碼包含具有四個欄位的初始資料集，其傳送至名為 `Transactions` 的表格中。

* 第二個載入指令碼包含的資料集具有與第一個資料集相同的欄位。

開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。

第一個載入指令碼

```

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 
]; 
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `id`

* `date`

* `amount`

* `type`

第一個載入指令碼結果表格

| id | 日期 | 類型 | 金額 |
| --- | --- | --- | --- |
| 3758 | 10/01/2018 | 內部 | 164.27 |
| 3759 | 10/03/2018 | 外部 | 384.00 |
| 3760 | 10/06/2018 | 內部 | 25.82 |
| 3761 | 10/09/2018 | 內部 | 312.00 |
| 3762 | 10/15/2018 | 內部 | 4.56 |
| 3763 | 10/16/2018 | 內部 | 90.24 |
| 3764 | 10/18/2018 | 外部 | 19.32 |

表格顯示初始資料集。

第二個載入指令碼

開啟資料載入編輯器，然後在下方新增載入指令碼。

```

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

結果

載入資料並前往工作表。

第二個載入指令碼結果表格

| id | 日期 | 類型 | 金額 |
| --- | --- | --- | --- |
| 3758 | 10/01/2018 | 內部 | 164.27 |
| 3759 | 10/03/2018 | 外部 | 384.00 |
| 3760 | 10/06/2018 | 內部 | 25.82 |
| 3761 | 10/09/2018 | 內部 | 312.00 |
| 3762 | 10/15/2018 | 內部 | 4.56 |
| 3763 | 10/16/2018 | 內部 | 90.24 |
| 3764 | 10/18/2018 | 外部 | 19.32 |
| 3765 | 11/03/2018 | 內部 | 129.40 |
| 3766 | 11/05/2018 | 外部 | 638.50 |

第二個資料集隱含串連至初始資料集，因為它們具有相同的欄位。