MERGE 命令
概念信息
将两个具有相同结构的已排序 Analytics 表中的记录组合为一个使用与原始表相同的排序顺序的新 Analytics 表。
语法
MERGE {{ON 键域|ON ALL <EXCLUDE 域名称 <...n>>}|{PKEY 主键域|PKEY ALL <EXCLUDE 域名称 <...n>>} {SKEY 辅助键域|SKEY ALL <EXCLUDE 域名称 <...n>>}} <IF 测试> TO 表名称 <LOCAL> <OPEN> <WHILE 测试> <FIRST 范围|NEXT 范围> <APPEND> <PRESORT> <ISOLOCALE 区域设置代码>
说明
只有字符域或字符计算域可在 MERGE 中用作键域。
主表和辅助表中的键域都必须按升序排序。如果一个或两个键域均未排序,或者按降序排序,则 MERGE 命令失败。
您可以使用 PRESORT 对主键域进行排序。如果辅助键域未排序,则必须首先在单独的排序操作中对其进行排序,然后才能执行合并。
主、辅助表可以进行索引而不是排序。对于大型表而言,索引而不是排序可能缩短合并表所需的时间。
参数
| 名称 | 描述 |
|---|---|
| ON 键域 | ON ALL |
说明 如果主表和辅助表中的相应键域具有相同的名称,则只能使用 ON。如果相应域具有不同的名称,或者如果它们是表达式而不是实际的物理域,您必须使用 PKEY 和 SKEY。 主表和辅助表中的一个或多个键域。
|
| EXCLUDE 域名称 可选 |
仅在使用 ON ALL 合并时有效。 要从该命令中排除的一个或多个域。EXCLUDE 使您可以通过排除指定的域优化 ON ALL。 EXCLUDE 必须紧跟在 ON ALL 后面。例如: ON ALL EXCLUDE 域 1 域 2 |
| PKEY 主键域 | PKEY ALL |
主表中的一个或多个键域或表达式。
|
| EXCLUDE 域名称 可选 |
仅在使用 PKEY ALL 合并时有效。 要从该命令中排除的一个或多个域。EXCLUDE 使您可以通过排除指定的域优化 PKEY ALL。 EXCLUDE 必须紧跟在 PKEY ALL 后面。例如: PKEY ALL EXCLUDE 域 1 域 2 |
| SKEY 辅助键域 | SKEY ALL |
辅助表中的一个或多个键域或表达式。
|
| EXCLUDE 域名称 可选 |
仅在使用 SKEY ALL 合并时有效。 要从该命令中排除的一个或多个域。EXCLUDE 使您可以通过排除指定的域优化 SKEY ALL。 EXCLUDE 必须紧跟在 SKEY ALL 后面。例如: SKEY ALL EXCLUDE 域 1 域 2 |
|
IF 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。仅对满足条件的那些记录执行该命令。 说明 在应用任何范围参数(WHILE、FIRST、NEXT)之后,仅针对表中的剩余记录评估 IF 条件。 |
| TO 表名 |
要将命令结果发送到的位置:
|
|
LOCAL 可选 |
请将输出文件保存在与 Analytics 项目相同的位置。 说明 仅当针对服务器表运行该命令并且输出文件为 Analytics 表时适用。 LOCAL 参数必须紧跟在 TO 参数后面。 |
|
OPEN 可选 |
在命令执行后打开该命令创建的表。仅当该命令创建输出表时有效。 |
|
WHILE 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。该命令被一直执行到条件的计算结果为假或者到达表的末尾为止。 说明 如果您将 WHILE 与 FIRST 或 NEXT 结合使用,请在达到一个限制时立即记下处理步骤。 |
|
FIRST 范围 | NEXT 范围 可选 |
要处理的记录数:
请使用范围指定要处理的记录数。 如果您省略 FIRST 和 NEXT,则会默认处理所有记录。 |
|
APPEND 可选 |
将命令输出附加到现有文件的末尾,而不是覆盖现有文件。 说明 您必须确保命令输出的结构和现有文件完全相同:
Analytics 将输出附加到现有文件,而无论其结构如何。如果输出的结构和现有文件不匹配,则可能生成混乱的、不完整的或不准确的数据。 |
|
PRESORT 可选 |
在执行该命令之前,请按主键域对主表进行排序。 说明 在 GROUP 命令内部不可使用 PRESORT。 省略 PRESORT:
|
|
ISOLOCALE 区域设置代码 可选 |
说明 仅在 Unicode 版 Analytics 中可用。 采用语言_国家/地区格式的系统区域设置。例如,要使用加拿大法语,请输入 fr-ca。 使用以下代码:
如果您不使用 ISOLOCALE,则会使用默认系统区域设置。 |
示例
合并具有相同键域名称的表
以下示例合并两个具有相同键域名称的表:
OPEN 员工位置1 PRIMARY
OPEN 员工位置2 SECONDARY
MERGE ON 姓氏 TO "所有员工" PRESORT
合并具有不同键域名称的表
以下示例合并两个具有不同键域名称的表:
OPEN 员工位置1 PRIMARY
OPEN 员工位置2 SECONDARY
MERGE PKEY 姓氏 SKEY 姓 TO "所有员工" PRESORT
备注
有关此命令工作方式的详细信息,请参阅合并表。
合并的备选方案
要正确执行合并可能很复杂。通过附加或者通过提取并附加然后排序,您可以得到相同的结果。
要了解更多信息,请参考APPEND 命令和EXTRACT 命令。
如果两个源表均已排序,则合并更为高效,并且可以更快地执行。