方法一:取出前n条和前m条然后取出其差(n-m)
select top(n-m + 1) * --7-3+1 =5
from table
where 关键字段 not in(select top m -1 关键字段 from table)
--2
--从表中取除了1,2行后的 前5行
方法二:先取出前n条的,再倒过来取出n-m就可以
select top(n-m+1) *
from (select top n * from table order by 关键字段 desc)
order by 关键字段
--如果是SQL Server数据库
查询第X页,每页Y条记录
最基本的处理方法:
如果表中有主键(记录不重复的字段也可以),可以用类似下面的方法,当然y,(x-1)*y要换成具体的数字,不能用变量:
select top y * from 表 where 主键 not in(select top (x-1)*y 主键 from 表)
如果表中无主键,可以用临时表,加标识字段解决.这里的x,y可以用变量.
select id=identity(int,1,1),* into #tb from 表
select * from #tb where id between (x-1)*y and x*y-1