SORT 命令

基于指定的键域将 Analytics 表中的记录按升序或降序排序。 结果被输出到一个新的物理重排序的 Analytics 表。

语法

SORT ON {键域 <D> <...n>|ALL} <FIELDS 域名称 <AS 显示名称> <...n>|FIELDS ALL> TO 表名称 <IF 测试> <WHILE 测试> <FIRST 范围|NEXT 范围> <APPEND> <OPEN> <ISOLOCALE 区域设置代码>

参数

名称 描述
ON 键域 D <...n> | ALL

要用于排序的一个或多个键域或表达式。

可按任意类型的域进行排序,其中包括计算域和临时表达式,而无论数据类型是什么。

  • 键域 使用指定的一个或多个域

    如果您按一个以上的域排序,则会在输出表中创建一个嵌套排序。 嵌套的顺序遵循您指定域的顺序。

    包括 D 可按降序对键域进行排序。 默认的排序顺序为升序。

  • ALL 使用该表中的所有域

    如果您按某个表中的所有域排序,则会在输出表中创建一个嵌套排序。 嵌套的顺序遵循这些域在表布局中出现的顺序。

    升序排序顺序是 ALL 的唯一选项。

FIELDS 域名称 <...n> | FIELDS ALL

可选

说明

键域被自动包括在输出表中,而不需要使用 FIELDS 指定。

要包括在输出中的域:

  • FIELDS 域名称使用指定的域

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

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

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

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

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

  • 省略 FIELDS 整个记录被包括在排序的输出表中:所有域以及该记录的任何未定义部分

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

    计算域被保留。

提示

如果您只需要某个记录中包含的一部分数据,请不要将所有域或整个记录包括在排序的输出表中。 请仅选择您需要的域,这在大多数情况下都会提高排序速度。

AS 显示名称

可选

仅在使用 FIELDS 排序时使用。

新 Analytics 表的视图中的域的显示名称(备选列标题)。 如果您希望显示名称与域名称或源表中的现有显示名称相同,请不要使用 AS。

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

说明

AS 仅在输出至新表时有效。 如果您要附加到现有表,则现有表中的备用列标题优先。

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,则会默认处理所有记录。

APPEND

可选

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

说明

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

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

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

OPEN

可选

打开该表并向该表应用索引。

ISOLOCALE 区域设置代码

可选

说明

仅在 Unicode 版 Analytics 中可用。

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

使用以下代码:

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

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

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

示例

按单个域排序,输出整个记录

您想要按产品编号对 Inventory 样例表中的记录进行排序。 排序后的记录被提取到一个名为 Inventory_Product_Number 的新 Analytics 表中。

整个记录都被包括在输出表中:

SORT ON ProdNo TO "Inventory_Product_Number"

要从默认的升序排序顺序切换到降序排序顺序,您需要在键域名称后面添加 D:

SORT ON ProdNo D TO "Inventory_Product_Number"

按单个域排序,输出域的子集

您想要按产品编号对 Inventory 样例表中的记录进行排序。 只有键域和指定的非键域被提取到一个名为 Inventory_Quantity_on_Hand 的新 Analytics 表。

第三个非键域 QtyOH 在输出表中被赋予显示名称 Qty on Hand”。

SORT ON ProdNo FIELDS ProdDesc ProdStat QtyOH AS "Qty on Hand" TO "Inventory_Quantity_on_Hand"

按单个域排序,输出所有域

您想要按产品编号对 Inventory 样例表中的记录进行排序。 所有域被提取到一个名为 Inventory_Product_Number 的新 Analytics 表中。

使用 FIELDS ALL 和输出整个记录之间的区别在于,FIELDS ALL 会将源表中的任何计算域转换为输出表中的物理域,并且用实际的计算值填充这些域:

SORT ON ProdNo FIELDS ALL TO "Inventory_Product_Number"

按多个域排序(嵌套排序)

您想要依次按地点、产品类别、产品编号对 Inventory 样例表中的记录进行排序。 排序后的记录被提取到一个名为 Inventory_Location_Class_Number 的新 Analytics 表中。

SORT ON Location ProdCls ProdNo TO "Inventory_Location_Class_Number"

使用相关域进行排序

您想要按下列域对 Ap_Trans 样例表中的记录进行排序:

  • 供应商所在州(相关 Vendor 表)
  • 供应商所在城市(相关 Vendor 表)
  • 供应商编号(Ap_Trans 表)

所有三个键域和指定的非键域(包括相关域 Vendor.Vendor_Name)都被提取到一个名为 Ap_Trans_State_City 的新 Analytics 表中:

SORT ON Vendor.Vendor_State Vendor.Vendor_City Vendor_No FIELDS Vendor.Vendor_Name Invoice_No Invoice_Date Invoice_Amount Prodno Quantity Unit_Cost TO "Ap_Trans_State_City"

备注

说明

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

按相关域进行排序

您可以按相关域排序,并且将相关域包括为排序输出表中的非键域。 要在 SORT 命令中引用相关域,请指定子表名称.域名称

固定长度与可变长度数据文件

SORT 命令对固定长度和可变长度数据文件均适用。