SORT 命令

概念信息

排序记录

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

语法

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

参数

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

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

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

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

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

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

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

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

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

EXCLUDE 域名称

可选

仅在使用 ON ALL 排序时有效。

要从该命令中排除的一个或多个域。EXCLUDE 使您可以通过排除指定的域优化 ON ALL。

EXCLUDE 必须紧跟在 ON ALL 后面。例如:

ON ALL EXCLUDE 域 1 域 2

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

可选

说明

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

要包括在输出中的域:

  • FIELDS 域名称使用指定的域

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

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

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

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

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

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

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

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

    计算域被保留。

提示

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

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

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,在输出表中被赋予的物理域名称为 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"

备注

有关此命令工作方式的详细信息,请参见排序记录

SORT 命令使用的排序顺序

SORT 命令使用排序顺序选项(工具 > 选项 > 表)中指定的任何排序顺序。默认排序顺序如下所示。

有关详细信息,请参见“排序顺序”选项和排序顺序

Analytics 版本

默认排序顺序

关联排序顺序

非 Unicode

系统默认

(ASCII)

先是数字,再是大写字母,然后是小写字母:

0, 1, 2... A, B, C... a, b, c...

例如,“Z”排在“a”之前。

Unicode

混合语言 (UCA)

(Unicode 排序算法)

先是数字,然后是小写字母和大写字母相互混合:

0, 1, 2... a, A, b, B, c, C...

例如,“a”排在“Z”之前。

区分大小写

SORT 区分大小写。根据您使用的 Analytics 的版本的不同(非 Unicode 或者 Unicode),字符串中的大小写可能影响排序。

如果您不希望大小写影响排序,您可以将 UPPER( ) 函数与 SORT 结合使用:

SORT ON UPPER(键域) TO "Sorted_Table"

按相关域进行排序

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

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

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