MERGE 命令
将两个具有相同结构的已排序 Analytics 表中的记录组合为一个使用与原始表相同的排序顺序的新 Analytics 表。
语法
MERGE {ON 键域|PKEY 主键域 SKEY 辅助键域} <IF test> TO 表名称 <LOCAL> <OPEN> <WHILE 测试> <FIRST 范围|NEXT 范围> <APPEND> <PRESORT> <ISOLOCALE 区域设置代码>
参数
| 名称 | 描述 |
|---|---|
| ON 键域 | PKEY 主键域 SKEY 辅助键域 |
说明 只有字符域或字符计算域可在 MERGE 中用作键域。
排序要求主表和辅助表中的键域都必须按升序排序。 如果一个或两个键域均未排序,或者按降序排序,则 MERGE 命令失败。 您可以使用 PRESORT 对主键域进行排序。 如果辅助键域未排序,则必须首先在单独的排序操作中对其进行排序,然后才能执行合并。 索引而不是排序主、辅助表可以进行索引而不是排序。 对于大型表而言,索引而不是排序可能缩短合并表所需的时间。 |
|
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
备注
说明
有关此命令工作原理的详细信息,请参见 Analytics 帮助。
合并的备选方案
要正确执行合并可能很复杂。 通过附加或者通过提取并附加然后排序,您可以得到相同的结果。
要了解更多信息,请参考APPEND 命令和EXTRACT 命令。
如果两个源表均已排序,则合并更为高效,并且可以更快地执行。