7.6.2外存排序的应用

其实,从外存排序的过程中,我们就可以看到对游标排序的应用之一:排序后的数据可以用来有序归并。有序归并可以从多个游标中获取数据,根据排序表达式计算,哪个游标中的当前结果最小(或最大),则读取这个游标中的记录。显然,只有在各个游标中的数据均有序时,才能使用这样的计算方法。除此以外,使用joinx() 函数将游标中的记录对齐式连接时,也要求各个游标中的数据先完成排序。关于joinx() 的使用,请阅读7.4游标归并与连接

当游标中的数据满足有序需求时,在游标中获取数据还可以指定取数到表达式变化为止,如:

 

A

1

=file("PhoneRecord.btx ")

2

=A1.cursor@b()

3

=A2.sortx(Date,-PhoneNum;20000)

4

=A3.fetch(;Date)

5

>3.(A3.skip(;Date))

6

=A3.fetch(;Date)

7

>A3.close()

A4中,从A3的游标中取数,直到日期变化为止,即取出第1天的数据;A5中,连续跳过3天的数据;A6中取出第5天的数据。A4A6中的结果如下: