测试序列顺序

Concept Information

SEQUENCE 命令

测试序列顺序(“检查序列”选项)可让您在执行特定分析测试或数据组合操作之前,检查数据是否已进行排序和索引,或者检查是否需要进行排序和索引。

Analytics 中的数项测试和操作要求数据按序列顺序排序,以使结果有效,或者使操作能够成功执行。您不用对表格进行不必要的排序或索引,可以对其进行测试,了解是否需要进行排序或索引。先进行测试可节省时间,因为对于大型的表格,排序需要的时间量和系统资源都很可观。

可以测试字符、数值、日期时间或计算域的顺序,以及域和数据类型组合的顺序,如果通过多个域对数据进行排序或索引。

说明

按顺序排序的数据不意味着该数据没有间隔。例如,数值系列(1、3、5)按顺序排序。测试有无间隔是一种不同的操作。有关详细信息,请参见测试间隔。

测试是否按顺序排序不会对记录进行排序

测试序列顺序不会将记录按序列整理或排序,或者以任何方式修改接受测试的表中的记录的顺序。该测试可验证表中的指定域当前是否按序列顺序排序,并报告发现的任何序列错误。要将记录排序或按序列整理,需要执行单独的排序或索引操作。

测试是否存在失序项

测试序列顺序也可让您找出应该有固有序列顺序的数据中的无序项(例如发票或支票编号),同时指出可能存在的不规则之处。例如,可以将特定供应商的发票数据按日期排序,然后测试发票编号的序列顺序。对于无序发票编号应该进行进一步的检查。

用于测试字符数据的排序顺序

将对照在排序顺序选项(工具 > 选项 > 表)中为字符数据指定的任何排序序列测试字符域的序列顺序。除非您进行了更改,否则通常会指定默认的排序序列 (0,1,2... A,B,C...)。在 Analytics 的非 Unicode 版本中存在一些排序细则,例如默认的排序序列要求所有大写的字母字符的排序在所有的小写字母字符之前。

如何报告序列错误

“检查序列”选项会将列中的第一个值与第二个值比较,将第二个值与第三个值比较,以此类推,在列中不断向下比较成对的值。如果某对值打乱了序列,则会报告序列错误。

在中断处后,序列重新开始,将第二对值作为新的开始点。中断处之后的任何无序值在与中断处之前的值比较时不会报告为序列错误。例如,当测试以下升序的值列时,Analytics 会报告两个序列错误 (4, 1),而不是五个 (4, 4, 5, 1, 2)。

 

1
     3
     6
     4    序列错误
     4
     5
     6
     9
     1    序列错误
     2

测试嵌套的排序顺序

如果组合测试两个或更多域的序列顺序,要使结果生效,需要以与排序顺序或索引顺序优先级相同的优先级顺序(主关键字域、辅助关键字域等)选择要测试的域。还需要对每个域匹配序列顺序的方向(升序或降序)。

当测试嵌套的排序顺序时有效和无效的结果

下面的示例基于测试顺序是否匹配 Date 和 Amount 键域中的值的嵌入排序顺序和方向来演示有效或无效结果。

日期

(主键域,升序)

金额

(辅助键域,嵌套,降序)

15 一月 2011

15 一月 2011

15 一月 2011

16 一月 2011

16 一月 2011

17 一月 2011

17 一月 2011

17 一月 2011

$2300.00

$1200.00

$600.00

$900.00

$100.00

$4700.00

$900.00

$500.00

有效结果

返回 0 个序列错误:

SEQUENCE ON Date Amount D

该序列测试使用与所测试的域相同的优先级顺序和方向。

无效结果

返回 2 个序列错误:

SEQUENCE ON Amount D Date

该序列测试使用与所测试的域不同的优先级顺序,并且将 Amount 域视为未嵌套的。

无效结果

返回 5 个序列错误:

SEQUENCE ON Date Amount

该序列测试使用与所测试的域之一不同的方向,并且将 Amount 域视为按升序排序。

步骤

可通过检查序列选项来确定活动表中的各域是否按顺序排列,或者查看有没有顺序错误的条目。

说明

确保当前未对活动表进行快速排序。视图必须显示基本 Analytics 表的实际物理顺序,检查序列选项才能提供有效的结果。