# AutoNumber

此语句为脚本执行期间遇到的字段中每个不同的计算值创建唯一的整数值。

您还可在 Load 语句内使用 [autonumber - 脚本函数](https://help.qlik.com/zh-CN/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/CounterFunctions/autonumber.htm) 函数，但是这在您希望使用优化负载时会造成一些限制。您可创建优化负载，方法是先从 QVD 文件将数据载入，然后使用 AutoNumber 语句来转换值为符号键。

语法：

AutoNumber \*fieldlist [Using namespace] ]

参数：

参数

| 参数 | 说明 |
| --- | --- |
| \*字段列表 | 逗号分隔的字段列表，其中值应当由唯一整数值替代。<br><br>您可在字段名称中使用通配字符 ? 和 \* 来包括具有匹配名称的所有字段。您还可使用 \* 来包括所有字段。您需要在使用了通配符时引用字段名称。 |
| 命名空间 | Using 可选择使用命名空间。如果您希望创建命名空间，可使用该选项， 在其中不同字段中的相同值共用相同键。<br><br>如果不使用该选项，所有字段将具有单独的键索引。 |

限制：

如果您在脚本中有数个 Load 语句，则需要将 AutoNumber 语句置于最终 Load 语句之后。

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

#### 示例 - 带有 AutoNumber 的脚本

## 脚本示例

在本例中，首次加载数据时不使用 AutoNumber 语句。然后添加 AutoNumber 语句以显示效果。

### 示例中所使用的数据：

将以下数据作为数据加载编辑中的内联加载载入，以创建以下脚本示例。将 AutoNumber 语句注释掉。

```
RegionSales:
LOAD *, 
Region &'|'& Year &'|'& Month as KeyToOtherTable
INLINE
[ Region, Year, Month, Sales
North,	2014,	May,	245
North,	2014,	May,	347
North,	2014,	June,	127
South,	2014,	June,	645
South,	2013,	May, 	367
South,	2013,	May,	221
];
					
Budget:
LOAD Budget,  
Region &'|'& Year &'|'& Month as KeyToOtherTable
INLINE
[Region, Year, Month, Budget
North,  2014,   May,    200
North,  2014,   May,    350
North,  2014,   June,   150
South,  2014,   June,   500
South,  2013,   May,    300
South,  2013,   May,    200
];

//AutoNumber KeyToOtherTable;

```

有关使用内联加载的详细信息，请参见[使用内联加载来加载数据](https://help.qlik.com/zh-CN/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)。

### 创建可视化

在 Qlik Sense 工作表中创建两个表格可视化。将 KeyToOtherTable、Region、Year、Month 和 Sales 作为维度添加到第一个表格。将 KeyToOtherTable、Region、Year、Month 和 Budget 作为维度添加到第二个表格。

### 结果

RegionSales 表格

| KeyToOtherTable | Region | Year | Month | Sales |
| --- | --- | --- | --- | --- |
| North\|2014\|June | North | 2014 | June | 127 |
| North\|2014\|May | North | 2014 | May | 245 |
| North\|2014\|May | North | 2014 | May | 347 |
| South\|2013\|May | South | 2013 | May | 221 |
| South\|2013\|May | South | 2013 | May | 367 |
| South\|2014\|June | South | 2014 | June | 645 |

预算表格

| KeyToOtherTable | Region | Year | Month | Budget |
| --- | --- | --- | --- | --- |
| North\|2014\|June | North | 2014 | June | 150 |
| North\|2014\|May | North | 2014 | May | 200 |
| North\|2014\|May | North | 2014 | May | 350 |
| South\|2013\|May | South | 2013 | May | 200 |
| South\|2013\|May | South | 2013 | May | 300 |
| South\|2014\|June | South | 2014 | June | 500 |

### 解释

该示例显示了链接两个表的复合字段 KeyToOtherTable。未使用 AutoNumber。请注意 KeyToOtherTable 值的长度。

### 添加 AutoNumber 语句

取消对加载脚本中的 AutoNumber 语句的注释：

```
AutoNumber KeyToOtherTable;
```

### 结果

RegionSales 表格

| KeyToOtherTable | Region | Year | Month | Sales |
| --- | --- | --- | --- | --- |
| 1 | North | 2014 | June | 127 |
| 1 | North | 2014 | May | 245 |
| 2 | North | 2014 | May | 347 |
| 3 | South | 2013 | May | 221 |
| 4 | South | 2013 | May | 367 |
| 4 | South | 2014 | June | 645 |

预算表格

| KeyToOtherTable | Region | Year | Month | Budget |
| --- | --- | --- | --- | --- |
| 1 | North | 2014 | June | 150 |
| 1 | North | 2014 | May | 200 |
| 2 | North | 2014 | May | 350 |
| 3 | South | 2013 | May | 200 |
| 4 | South | 2013 | May | 300 |
| 4 | South | 2014 | June | 500 |

### 解释

KeyToOtherTable 字段值已替换为唯一的整数值，因此，字段值的长度已减小，从而节省内存。两个表中的键字段都受 AutoNumber 的影响，并且表保持链接。尽管此例主要用于演示目的，但对于包含大量行的表格将非常有意义。