EXTRACT 命令

从 Analytics 表提取数据并将其输出至新的 Analytics 表,或者将其附加至现有的 Analytics 表。您可以提取整个记录或所选域。

语法

EXTRACT {RECORD|FIELDS 域名称 <AS 新域名称> <...n>|FIELDS ALL} <关联表名称.ALL <...n>> <EXCLUDE 域名称 <...n>> TO 表名称 <LOCAL> <IF 测试> <WHILE 测试> <FIRST 范围|NEXT 范围> <EOF> <APPEND> <OPEN>

参数

名称 描述
RECORD | FIELDS 域名称 | FIELDS ALL

要包括在输出中的域:

  • RECORD 使用源数据文件中的整个记录:该表中的所有域,以及该记录的任何未定义部分

    域被按照它们在表布局中出现的顺序使用。

    保留计算域。

  • FIELDS 域名称使用指定的域

    域被按照您列出它们的顺序使用。

    要使用关联表中的域,请指定关联表名称.域名称

    将计算域转换为目标表中适当数据类型的物理域– ASCII 或 Unicode(具体取决于 Analytics 的版本)、ACL(固有数值数据类型)、日期时间类型或逻辑类型。用实际计算值填充物理域。

  • FIELDS ALL 使用该表中的所有域

    域被按照它们在表布局中出现的顺序使用。

    将计算域转换为目标表中适当数据类型的物理域– ASCII 或 Unicode(具体取决于 Analytics 的版本)、ACL(固有数值数据类型)、日期时间类型或逻辑类型。用实际计算值填充物理域。

AS 新域名称

可选

仅在使用 FIELDS 域名称提取时有效。

输出表中的域的新物理名称和显示名称(备选列标题)。

显示名称中会保留指定的特殊字符或空格,然后在表布局的物理域名称中会自动转换为下划线 ( _ )。

请将新的域名称指定为带引号的字符串。如果您希望显示名称包含换行符,请在单词之间使用分号 (;)。

说明

AS 仅在提取至新表时有效。如果您要附加到现有表,则现有表中的物理域名称和显示名称优先。

关联表名称.ALL

可选

使用指定的关联表中的所有域。

EXCLUDE 域名称

可选

仅在使用 FIELDS ALL 或关联表名称.ALL 提取时,才会有效。

要从该命令中排除的一个或多个域。EXCLUDE 让您可以通过排除指定的域,来调整 ALL 关键字。

如果要添加源自一个或多个相关表的字段,则 EXCLUDE 必须紧跟在 FIELDS ALL 之后,或 ALL 关键字最后一次出现的位置之后。例如:

FIELDS ALL EXCLUDE 域 1 域 2
FIELDS ALL 关联表名称.ALL EXCLUDE 域 1 域 2
TO 表名

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

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

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

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

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

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

    说明

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

LOCAL

可选

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

说明

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

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

IF 测试

可选

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

说明

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

WHILE 测试

可选

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

说明

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

FIRST 范围 | NEXT 范围

可选

要处理的记录数:

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

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

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

EOF

可选

在到达文件末尾之后,再执行该命令一次。

当位于 GROUP 命令内部时,这可以确保表中的最后一个记录得到处理。请仅当所有域为引用较早记录的计算域时才使用 EOF。

APPEND

可选

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

说明

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

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

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

OPEN

可选

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

示例

将表中的所有记录提取到新表

您通过将所有记录提取到一个新的 Analytics 表创建 AR_Customer 表的完全重复表。任何计算域都被保留为计算域:

OPEN 客户应收账款
EXTRACT RECORD TO "客户应收账款_2"

将表中的所有域提取到新表

您将 AR_Customer 表中的所有已定义域提取到一个新的 Analytics 表。任何计算域都被转换为物理域并且被用实际计算值填充:

OPEN 客户应收账款
EXTRACT FIELDS ALL TO "AR_Customer_2"

提取某个表中的所有记录并将其附加到现有表

您提取 AR_Customer 表中的所有记录并将其作为一个组附加到 AR_Customer_Master 表的末尾:

OPEN 客户应收账款
EXTRACT RECORD TO "AR_Customer_Master" APPEND

提取某个表中的所有记录并将其附加到另一个文件夹中的某个现有表

您提取 AR_Customer 表中的所有记录并将其作为一个组附加到 AR_Customer_Master 表(它位于一个不同于 Analytics 项目文件夹的文件夹中)的末尾:

OPEN 客户应收账款
EXTRACT RECORD TO "C:\Users\Customer Data\AR_Customer_Master" APPEND

将一个表中的域子集提取到新表

在提取表中域的子集时,有两个选项:

  • 指定要提取的各个域
  • 指定 FIELDS ALL 并指定要从提取范围中排除的域

提示

使用任何一种最省力的方法。

下面的示例参照 AR_Customer 表,它包含七个域:

  • 参考编号
  • 客户编号
  • 客户名称
  • 交易类型
  • 发票日期
  • 到期日
  • 发票金额

指定要提取的域

您将 AR_Customer 表中的三个域提取到一个新的 Analytics 表:

OPEN 客户应收账款
EXTRACT FIELDS 名称 到期日期 日期 TO "客户应收账款日期.fil"

指定 FIELDS ALL 并指定要排除的域

您将 AR_Customer 表中的所有域(Reference_num 域除外)提取到一个新的 Analytics 表:

OPEN 客户应收账款
EXTRACT FIELDS ALL EXCLUDE Reference_num TO "AR_Customer_Dates.fil"

为被提取域创建新名称

您从 AR_Customer 表中提取三个域,然后为新的 Analytics 表中的这些域创建新的物理名称和显示名称:

OPEN 客户应收账款
EXTRACT FIELDS Name AS "Customer;Name" Due AS "Due;Date" Date AS "Invoice;Date" TO "AR_Customer_Dates.fil"

单词之间使用的分号 (;) 会在显示名称中创建换行符。分号在物理域名称中会自动转换为下划线 (_)。

根据条件提取域

如果到期日期域中的日期早于 2014 年 7 月 1 日,则将 AR_Customer 表中的三个域提取到一个新的 AAnalyticsnalytics 表:

OPEN 客户应收账款
EXTRACT FIELDS 名称 到期日期 日期 IF 到期日期 < `20140701` TO "到期未付.fil"

备注

有关此命令工作方式的详细信息,请参见提取数据提取并附加数据

EXTRACT 与复制表之比较

EXTRACT 除了创建一个新的表布局以外,还创建一个新的源数据文件 (.fil)。

使用导航器编辑 > 复制)复制表会创建一个与原始源数据文件相关联的新的表布局。它不会创建新的数据文件。