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 |
要用于排序的一个或多个键域或表达式。 可按任意类型的域进行排序,其中包括计算域和临时表达式,而无论数据类型是什么。
|
|
FIELDS 域名称 <...n> | FIELDS ALL 可选 |
说明 键域被自动包括在输出表中,而不需要使用 FIELDS 指定。 要包括在输出中的域:
提示 如果您只需要某个记录中包含的一部分数据,请不要将所有域或整个记录包括在排序的输出表中。 请仅选择您需要的域,这在大多数情况下都会提高排序速度。 |
|
AS 显示名称 可选 |
仅在使用 FIELDS 排序时使用。 新 Analytics 表的视图中的域的显示名称(备选列标题)。 如果您希望显示名称与域名称或源表中的现有显示名称相同,请不要使用 AS。 请将显示名称指定为带引号的字符串。 如果您希望列标题包含换行符,请在单词之间使用分号 (;)。 说明 AS 仅在输出至新表时有效。 如果您要附加到现有表,则现有表中的备用列标题优先。 |
| TO 表名 |
要将命令结果发送到的位置:
|
| LOCAL 可选 |
请将输出文件保存在与 Analytics 项目相同的位置。 说明 仅当针对服务器表运行该命令并且输出文件为 Analytics 表时适用。 LOCAL 参数必须紧跟在 TO 参数后面。 |
| IF 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。 仅对满足条件的那些记录执行该命令。 说明 在应用任何范围参数(WHILE、FIRST、NEXT)之后,仅针对表中的剩余记录评估 IF 条件。 |
| WHILE 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。 该命令被一直执行到条件的计算结果为假或者到达表的末尾为止。 说明 如果您将 WHILE 与 FIRST 或 NEXT 结合使用,请在达到一个限制时立即记下处理步骤。 |
| FIRST 范围 | NEXT 范围 可选 |
要处理的记录数:
请使用范围指定要处理的记录数。 如果您省略 FIRST 和 NEXT,则会默认处理所有记录。 |
|
APPEND 可选 |
将命令输出附加到现有文件的末尾,而不是覆盖现有文件。 说明 您必须确保命令输出的结构和现有文件完全相同:
Analytics 将输出附加到现有文件,而无论其结构如何。 如果输出的结构和现有文件不匹配,则可能生成混乱的、不完整的或不准确的数据。 |
|
OPEN 可选 |
打开该表并向该表应用索引。 |
|
ISOLOCALE 区域设置代码 可选 |
说明 仅在 Unicode 版 Analytics 中可用。 采用语言_国家/地区格式的系统区域设置。 例如,要使用加拿大法语,请输入 fr-ca。 使用以下代码:
如果您不使用 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 命令对固定长度和可变长度数据文件均适用。