select top 在sql或vf之中的应用

来源:百度知道 编辑:UC知道 时间:2024/05/11 19:43:15
为有10万数据,dbf格式,万要筛选出前面500条记录,可以这样:
select top 500 * from 数据库.dbf order by num

问题是:
我要筛选出第500-1000之间的记录呢?如何写命令?急!高分奖励!

from (select top 1000 * from 数据库.dbf order by num ) a order by a.num desc ) b order by b.num

先选择前1000条记录,再选出前500条记录,然后将2个结果集做下差集

要先选择出前1000条的记录,即 select top 1000.

在1000条记录中,你使用500-1000之间的记录就行了。

把记录指针移到第500条,开始读取。

以上只能做降序的:
select top 500 a.* from (select top 1000 * from 数据库.dbf order by num ) a order by a.num desc

若要升序:
select b.* from ( select top 500 a.* from (select top 1000 * from 数据库.dbf order by num ) a order by a.num desc ) b order by b.num

以下看起来更舒服点(sql server 中肯定没有问题):
select top 500 * from 数据库.dbf where num not in (select top 500 * from 数据库.dbf order by num desc ) order by a.num desc

select top 1000 * from 数据库.dbf order by num
EXCEPT
select top 500 * from 数据库.dbf order by num