MERGE 命令

将两个具有相同结构的已排序 Analytics 表中的记录组合为一个使用与原始表相同的排序顺序的新 Analytics 表。

语法

MERGE {ON 键域|PKEY 主键域 SKEY 辅助键域} <IF test> TO 表名称 <LOCAL> <OPEN> <WHILE 测试> <FIRST 范围|NEXT 范围> <APPEND> <PRESORT> <ISOLOCALE 区域设置代码>

参数

名称 描述
ON 键域 | PKEY 主键域 SKEY 辅助键域

说明

只有字符域或字符计算域可在 MERGE 中用作键域。

  • ON 键域 如果主表和辅助表中的相应键域具有相同名称,则作为合并依据的一个或多个键域

    如果相应的域具有不同名称,或者如果它们是表达式而不是实际物理域,则必须使用 PKEY 和 SKEY。

  • PKEY 主键域 主表中的一个或多个键域或表达式
  • SKEY 主键域 辅助表中的一个或多个键域或表达式

排序要求

主表和辅助表中的键域都必须按升序排序。 如果一个或两个键域均未排序,或者按降序排序,则 MERGE 命令失败。

您可以使用 PRESORT 对主键域进行排序。 如果辅助键域未排序,则必须首先在单独的排序操作中对其进行排序,然后才能执行合并。

索引而不是排序

主、辅助表可以进行索引而不是排序。 对于大型表而言,索引而不是排序可能缩短合并表所需的时间。

IF 测试

可选

一个条件表达式,它必须为真以便处理每个记录。 仅对满足条件的那些记录执行该命令。

说明

在应用任何范围参数(WHILE、FIRST、NEXT)之后,仅针对表中的剩余记录评估 IF 条件。

TO 表名

要将命令结果发送到的位置:

  • 表名将结果保存到一个 Analytics 表

    请将表名指定为具有 .FIL 文件扩展名的带引号的字符串。 例如:TO "Output.FIL"

    默认情况下,表数据文件 (.FIL) 被保存到包含 Analytics 项目的文件夹。

    请使用绝对或相对文件路径将该数据文件保存到另外的现有文件夹:

    • TO "C:\Output.FIL"
    • TO "Results\Output.FIL"

    说明

    表名称被限制为不超过 64 个字母数字字符(不包括 .FIL 扩展名)。 该名称可以包括下划线字符 ( _ ),但不能包括其他特殊字符或任何空格。 该名称不能以数字开头。

LOCAL

可选

请将输出文件保存在与 Analytics 项目相同的位置。

说明

仅当针对服务器表运行该命令并且输出文件为 Analytics 表时适用。

LOCAL 参数必须紧跟在 TO 参数后面。

OPEN

可选

在命令执行后打开该命令创建的表。 仅当该命令创建输出表时有效。

WHILE 测试

可选

一个条件表达式,它必须为真以便处理每个记录。 该命令被一直执行到条件的计算结果为假或者到达表的末尾为止。

说明

如果您将 WHILE 与 FIRST 或 NEXT 结合使用,请在达到一个限制时立即记下处理步骤。

FIRST 范围 | NEXT 范围

可选

要处理的记录数:

  • FIRST 从第一个记录开始处理,直到达到指定的记录数为止
  • NEXT 从当前选定的记录开始处理,直到达到指定的记录数为止

请使用范围指定要处理的记录数。

如果您省略 FIRST 和 NEXT,则会默认处理所有记录。

APPEND

可选

将命令输出附加到现有文件的末尾,而不是覆盖现有文件。

说明

您必须确保命令输出的结构和现有文件完全相同:

  • 相同的域
  • 相同的域顺序
  • 匹配的域具有相同的长度
  • 匹配的域具有相同的数据类型

Analytics 将输出附加到现有文件,而无论其结构如何。 如果输出的结构和现有文件不匹配,则可能生成混乱的、不完整的或不准确的数据。

PRESORT

可选

在执行该命令之前,请按主键域对主表进行排序。

说明

在 GROUP 命令内部不可使用 PRESORT。

省略 PRESORT:

  • 如果主键域已被排序
  • 如果您使用索引共同键域合并两个表

ISOLOCALE 区域设置代码

可选

说明

仅在 Unicode 版 Analytics 中可用。

采用语言_国家/地区格式的系统区域设置。 例如,要使用加拿大法语,请输入 fr-ca

使用以下代码:

  • 语言 ISO 639 标准语言代码
  • 国家/地区 ISO 3166 标准国家/地区代码

    如果您未指定国家/地区代码,则使用该语言的默认国家/地区。

如果您不使用 ISOLOCALE,则会使用默认系统区域设置。

示例

合并具有相同键域名称的表

以下示例合并两个具有相同键域名称的表:

OPEN 员工位置1 PRIMARY
OPEN 员工位置2 SECONDARY
MERGE ON 姓氏 TO "所有员工" PRESORT

合并具有不同键域名称的表

以下示例合并两个具有不同键域名称的表:

OPEN 员工位置1 PRIMARY
OPEN 员工位置2 SECONDARY
MERGE PKEY 姓氏 SKEY 姓 TO "所有员工" PRESORT

备注

说明

有关此命令工作原理的详细信息,请参见 Analytics 帮助

合并的备选方案

要正确执行合并可能很复杂。 通过附加或者通过提取并附加然后排序,您可以得到相同的结果。

要了解更多信息,请参考APPEND 命令EXTRACT 命令

如果两个源表均已排序,则合并更为高效,并且可以更快地执行。