TSL语言基础 > SQL基础到TS-SQL > TS-SQL入门 > select查询语句

DRange返回结果集中的一部分    

  •   假如我们只需要英语成绩的前十名,我们就不需要将所有的结果集都返回,由于我们已经学习了矩阵的功能,所以我们可以使用select * from EnglishScore order by ["英语成绩"] desc end[0:9]来返回英语成绩的前十名,但是假使结果集巨大,我们完全没有必要返回所有的结果集,再取矩阵的子集,因为这样效率会低下,计算机做了许多无用的工作。
      TS-SQL提供了DRange关键字来支持这种应用:
      B:=select DRange(0 to 9) * from EnglishScore order by ["英语成绩"] desc end;
      这样我们就可以返回英语成绩最高的前十名了。
      DRange在select后返回列表之前,DRange的用法是DRange(FromIndex to ToIndex),和数组的下标一样,索引号也是从0作为基点的的,如果我们要返回最后的10条,我们可以用负数来代表倒数,-1表示最后一条,-2表示倒数第二条,例如DRange(-10 to -1)就代表了最后的十条。
      DRange还有另外一个用法,就是等分法,例如我们要把成绩分成十等分,我们返回第一等分的内容,也就是说英语成绩排位前10%的内容,B:=select DRange(1 of 10) from EnglishScore order by ["英语成绩"] desc end;
      相比之前学过的,SQL是否非常强大便捷和简单易懂呢?
      在传统SQL中,是不存在DRange的,但是传统SQL支持一些类似的写法,例如在SQL-SERVER的SQL语言中,支持Top N来取前N条,在Oracle中,支持rownum访问结果集的序号。