# NoConcatenate

NoConcatenate 前缀强制将两个使用相同字段集的加载表格处理为两个单独的内部表格（当它们以其他方式自动串联时）。

语法：

NoConcatenate( loadstatement | selectstatement )

默认情况下，如果加载的表包含相同数量的字段，并且字段名称与脚本中先前加载的表匹配，则 Qlik Sense 将自动串联这两个表。即使第二个表的名称不同，也会发生这种情况。

但是，如果脚本前缀 `NoConcatenate` 包含在第二个表的 Load 语句或 select 语句之前，则这两个表将分别加载。

`NoConcatenate`的一个典型用例是，您可能需要创建表的临时副本以对该副本执行一些临时转换，同时保留原始数据的副本。`NoConcatenate` 确保您可以创建该副本，而无需将其隐式添加回源表。

## 区域设置

除非另有规定，本主题中的示例使用以下日期格式：MM/DD/YYYY。日期格式已经在数据加载脚本中的 `SET DateFormat` 语句中指定。由于区域设置和其他因素，系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者，您可以更改加载脚本中的格式以匹配这些示例。

应用程序中的默认区域设置基于安装 Qlik Sense 的计算机或服务器的区域系统设置。如果您访问的 Qlik Sense 服务器设置为瑞典，则数据加载编辑器将使用瑞典地区设置的日期、时间、和货币。这些区域格式设置与 Qlik Sense 用户界面中显示的语言无关。Qlik Sense 将以您正在使用的浏览器所用的相同语言显示。

函数

| 示例 | 结果 |
| --- | --- |
| `Source:<br><br>								LOAD A,B from file1.csv;<br><br><br><br>							`<br>` CopyOfSource:<br><br>								NoConcatenate<br><br>							LOAD A,B resident Source;   ` | 加载带有 `A` 和 `B` 作为度量的表。使用 `NoConcatenate` 变量单独加载具有相同字段的第二个表。 |

## 示例 1 – 隐式串联

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

#### 加载脚本和结果

概述

在本例中，您将按顺序加载两个加载脚本。

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 一个初始数据集，其中包含发送到名为 `Transactions` 的表的日期和金额。

第一个加载脚本

```
Transactions: 
LOAD  
*  
Inline [ 
id, date, amount 
1, 08/30/2018, 23.56 
2, 09/07/2018, 556.31 
3, 09/16/2018, 5.75 
4, 09/22/2018, 125.00 
5, 09/22/2018, 484.21 
6, 09/22/2018, 59.18 
7, 09/23/2018, 177.42 
]; 
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

* `id`
* `date`
* `amount`

第一个结果表

| id | 日期 | 金额 |
| --- | --- | --- |
| 1 | 08/30/2018 | 23.56 |
| 2 | 09/07/2018 | 556.31 |
| 3 | 09/16/2018 | 5.75 |
| 4 | 09/22/2018 | 125.00 |
| 5 | 09/22/2018 | 484.21 |
| 6 | 09/22/2018 | 59.18 |
| 7 | 09/23/2018 | 177.42 |

第二个加载脚本

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 具有相同字段的第二个数据集被发送到名为 `Sales` 的表。

```
Sales: 
LOAD 
*  
Inline [ 
id, date, amount 
8, 10/01/2018, 164.27 
9, 10/03/2018, 384.00 
10, 10/06/2018, 25.82 
11, 10/09/2018, 312.00 
12, 10/15/2018, 4.56 
13, 10/16/2018, 90.24 
14, 10/18/2018, 19.32 
]; 
```

结果

加载数据并转到表。

第二个结果表

| id | 日期 | 金额 |
| --- | --- | --- |
| 1 | 08/30/2018 | 23.56 |
| 2 | 09/07/2018 | 556.31 |
| 3 | 09/16/2018 | 5.75 |
| 4 | 09/22/2018 | 125.00 |
| 5 | 09/22/2018 | 484.21 |
| 6 | 09/22/2018 | 59.18 |
| 7 | 09/23/2018 | 177.42 |
| 8 | 10/01/2018 | 164.27 |
| 9 | 10/03/2018 | 384.00 |
| 10 | 10/06/2018 | 25.82 |
| 11 | 10/09/2018 | 312.00 |
| 12 | 10/15/2018 | 4.56 |
| 13 | 10/16/2018 | 90.24 |
| 14 | 10/18/2018 | 19.32 |

当脚本运行时，由于两个数据集共享相同数量的字段和相同的字段名，`Sales` 表隐式串联到现有 `Transactions` 表上。尽管第二个表名标记试图命名结果集 `‘Sales’`，但仍会发生这种情况。

通过查看数据加载进度日志，可以看到销售额数据集是隐式串联的。

显示隐式串联的事务数据的数据加载进度日志。

显示隐式串联的事务数据的数据加载进度日志。

显示隐式串联的事务数据的数据加载进度日志。 ![显示交易表的数据加载进度日志已加载两次。](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Resources/Images/dle_DataLoadProgressLog_NoConcatenate.png)

## 示例 2 – 用例场景

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

#### 加载脚本和结果

概述

在这个用例场景中，您有：

* 一个交易数据集，其具有：

  * id

  * 日期

  * 金额 (GBP)

* 一个货币表：

  * USD 到 GBP 的转换率

* 第二个交易数据集，其具有：

  * id

  * 日期

  * 金额 (USD)

您将按顺序加载五个脚本。

* 第一个加载脚本包含一个初始数据集，其中包含发送到名为 `Transactions` 的表的日期和金额 (GBP)。

* 第二个加载脚本包含：

  * 第二个初始数据集，其中包含发送到名为 `Transactions_in_USD` 的表的日期和金额 (USD)。

  * 放置在 `Transactions_in_USD` 数据集的 Load 语句之前以防止隐式串联的 `noconcatenate` 前缀。

* 第三个加载脚本包含 `join` 前缀，用于在 `Transactions_in_USD` 表中创建 GBP 和 USD 之间的货币汇率。

* 第四个加载脚本包含将 `Transactions_in_USD` 添加到初始 `Transactions` 表的 `concatenate` 前缀。

* 第五个加载脚本包含 `drop table` 语句，该语句将删除其数据已串联到 `Transactions` 表的表 `Transactions_in_USD`。

第一个加载脚本

```
Transactions: 

Load * Inline [
id, date, amount 
1, 12/30/2018, 23.56 
2, 12/07/2018, 556.31 
3, 12/16/2018, 5.75 
4, 12/22/2018, 125.00 
5, 12/22/2018, 484.21 
6, 12/22/2018, 59.18 
7, 12/23/2018, 177.42 
];
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

* `id` `date` `amount`

第一个加载脚本结果

| id | 日期 | 金额 |
| --- | --- | --- |
| 1 | 12/30/2018 | 23.56 |
| 2 | 12/07/2018 | 556.31 |
| 3 | 12/16/2018 | 5.75 |
| 4 | 12/22/2018 | 125.00 |
| 5 | 2018/12/22 | 484.21 |
| 6 | 2018/12/22 | 59.18 |
| 7 | 12/23/2018 | 177.42 |

该表显示了初始数据集，带有按 GBP 计的金额。

第二个加载脚本

```
Transactions_in_USD:
NoConcatenate 
Load * Inline [ 
id, date, amount 
8, 01/01/2019, 164.27 
9, 01/03/2019, 384.00 
10, 01/06/2019, 25.82 
11, 01/09/2019, 312.00 
12, 01/15/2019, 4.56 
13, 01/16/2019, 90.24 
14, 01/18/2019, 19.32 
];
```

结果

加载数据并转到表。

第二个加载脚本结果

| id | 日期 | 金额 |
| --- | --- | --- |
| 1 | 2018/12/30 | 23.56 |
| 2 | 2018/12/07 | 556.31 |
| 3 | 2018/12/16 | 5.75 |
| 4 | 2018/12/22 | 125.00 |
| 5 | 2018/12/22 | 484.21 |
| 6 | 2018/12/22 | 59.18 |
| 7 | 2018/12/23 | 177.42 |
| 8 | 01/01/2019 | 164.27 |
| 9 | 01/03/2019 | 384.00 |
| 10 | 01/06/2019 | 25.82 |
| 11 | 01/09/2019 | 312.00 |
| 12 | 01/15/2019 | 4.56 |
| 13 | 01/16/2019 | 90.24 |
| 14 | 01/18/2019 | 19.32 |

您将看到 `Transactions_in_USD` 表中的第二个数据集已添加。

第三个加载脚本

此加载脚本将从 USD 到 GBP 的货币汇率加入到 `Transactions_in_USD` 表中。

```

Join (Transactions_in_USD)
Load * Inline [ 
rate 
0.7 
];
```

结果

加载数据并转到数据模型查看器。选择 `Transactions_in_USD` 表，您将看到每个现有记录的“汇率”字段值为 0.7。

第四个加载脚本

使用常驻加载，此加载脚本将在将金额转换为 USD 后将 `Transactions_in_USD` 表格串联到 `Transactions` 表格。

```

Concatenate (Transactions)
LOAD
id,
date, 
amount * rate as amount
Resident Transactions_in_USD;
```

结果

加载数据并转到表。您将看到第八行至第十四行以 GBP 为单位的新条目。

第四个加载脚本结果

| id | 日期 | 金额 |
| --- | --- | --- |
| 1 | 2018/12/30 | 23.56 |
| 2 | 2018年12月07日 | 556.31 |
| 3 | 2018年12月16日 | 5.75 |
| 4 | 2018年12月22日 | 125.00 |
| 5 | 2018年12月22日 | 484.21 |
| 6 | 2018年12月22日 | 59.18 |
| 7 | 2018/12/23 | 177.42 |
| 8 | 01/01/2019 | 114.989 |
| 8 | 01/01/2019 | 164.27 |
| 9 | 2019/01/03 | 268.80 |
| 9 | 2019/01/03 | 384.00 |
| 10 | 2019/01/06 | 18.074 |
| 10 | 2019/01/06 | 25.82 |
| 11 | 2019/01/09 | 218.40 |
| 11 | 2019/01/09 | 312.00 |
| 12 | 2019/01/15 | 3.192 |
| 12 | 2019/01/15 | 4.56 |
| 13 | 2019/01/16 | 63.168 |
| 13 | 2019/01/16 | 90.24 |
| 14 | 2019/01/18 | 13.524 |
| 14 | 2019/01/18 | 19.32 |

第五个加载脚本

此加载脚本将删除第四个加载脚本结果表中的重复条目，只留下金额按 GBP 计的条目。

```

drop tables Transactions_in_USD;
```

结果

加载数据并转到表。

第五个加载脚本结果

| id | 日期 | 金额 |
| --- | --- | --- |
| 1 | 2018/12/30 | 23.56 |
| 2 | 2018/12/07 | 556.31 |
| 3 | 2018/12/16 | 5.75 |
| 4 | 2018/12/22 | 125.00 |
| 5 | 2018/12/22 | 484.21 |
| 6 | 2018/12/22 | 59.18 |
| 7 | 2018/12/23 | 177.42 |
| 8 | 01/01/2019 | 114.989 |
| 9 | 01/03/2019 | 268.80 |
| 10 | 01/06/2019 | 18.074 |
| 11 | 2019年01月09日 | 218.40 |
| 12 | 2019年01月15日 | 3.192 |
| 13 | 2019年01月16日 | 63.168 |
| 14 | 01/18/2019 | 13.524 |

加载第五个加载脚本后，结果表显示了两个事务数据集中存在的所有十四个事务；然而，交易 8-14 的金额已转换为 GBP。

如果我们在第二个加载脚本中删除在 Transactions\_in\_USD之前使用的 NoConcatenate 前缀，脚本将失败，并显示错误：“找不到表 'Transactions\_in\_USD' ”。这是因为 Transactions\_in\_USD 表将自动串联到原始 Transactions 表上。

## 了解详情

* [串联表格](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Sense_Hub/LoadData/concatenate-tables.htm)
* [Load](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)