SPLITVALUES 命令

概念信息

拆分表

根据键域中的唯一值,将表拆分成两个或多个表。输出表会使用这个唯一值作为表名称,带有可选文本前缀。

说明

在拆分表时,支持的唯一键域值的最大数量为 450。

语法

SPLITVALUES ON 键域 <PREFIX 前缀文本> {FIELDS 域名称 <AS 新域名称> <...n>|FIELDS ALL} <关联表名称.ALL <...n>> <IF 测试> <TO 文件夹名称> <WHILE 测试> <FIRST 范围|NEXT 范围>

参数

名称 描述

ON 键域

用于拆分表的键域。

键域可以是字符、数值、日期时间,或者逻辑类型。

要使用多个键域,请创建一个计算域来连接这些键域,然后将此计算域用作键域。

说明

输出表中会自动包含键域,并且无需使用 FIELDS 来指定。

PREFIX 前缀文本

可选

字母数字字符串,用作所有输出表名称的前缀。

如果省略前缀,则输出表仅将唯一的键域值用作表名称。

表名称前缀的限制是不超过 32 个字母数字字符。整体表名称的限制是不超过 64 个字母数字字符。如果表名称前缀和键域值的组合超过了 64 个字符,则会从右侧截断表名称。

表名称前缀可以包含下划线字符 ( _ ),但不能包含其他特殊字符或空格。前缀不能以数字开头。

提示

如果使用日期时间或数字键域,则请使用 D_N_ 之类的前缀,确保输出表名称中会保留键值中的第一个数字。

FIELDS 域名称 | FIELDS ALL

要包括在输出中的域:

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

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

    保留计算域。

  • FIELDS 域名称使用指定的域

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

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

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

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

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

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

AS 新域名称

可选

仅在使用 FIELDS 域名称时,才会有效。

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

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

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

关联表名称.ALL

可选

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

IF 测试

可选

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

说明

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

TO 文件夹名称

可选

输出表的目标文件夹。

如果省略 TO,则输出表会保存到包含 Analytics 项目的文件夹。

WHILE 测试

可选

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

说明

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

FIRST 范围 | NEXT 范围

可选

要处理的记录数:

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

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

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

示例

根据单个键域拆分表

根据 Ap_Trans 表中 Vendor_Name 域的唯一值,生成多个输出表:

OPEN Ap_Trans
SPLITVALUES ON Vendor_Name PREFIX Vendor_ FIELDS Vendor_No Vendor_City Invoice_No Invoice_Date Invoice_Amount Prodno Quantity Unit_Cost TO "Vendor_tables"

每个输出表包含共享唯一键值的所有记录。表的命名方式为Vendor_供应商名称。例如,名称为 Vendor_Koro_International 的表包含 Vendor_Name 值为 Koro International 的所有记录。

输出表都保存在 Analytics 工作目录中的 Vendor_tables 文件夹中。

根据多个键域拆分表

根据 Ap_Trans 表中 Vendor_NameInvoice_Date 这两个域的唯一值组合,生成多个输出表。

ALLTRIM( ) 函数会删除供应商名称值中不必要的前导空格和结尾空格。如果不删除空格,它们会转换为多个下划线字符 (_),导致浪费输出表名称中的有限空间。

DATE( ) 函数会将 Invoice_Date 域转换为连接所需的字符数据类型。

OPEN Ap_Trans
SPLITVALUES ON ALLTRIM(Vendor_Name)+"_"+DATE(Invoice_Date, "MM/DD/YY") FIELDS Vendor_No Vendor_Name Invoice_No Invoice_Date Invoice_Amount Prodno Quantity Unit_Cost TO "Vendor_Date_tables"

每个输出表包含共享唯一键值组合的所有记录。表的命名方式为供应商名称_发票日期。例如,名称为 Koro_International_06_15_23 的表包含 Vendor_Name 值为 Koro InternationalInvoice_Date 值为 06_15_23 的所有记录。

输出表都保存在 Analytics 工作目录中的 Vendor_Date_tables 文件夹中。