SELECT TOP 10 * FROM ( SELECT TOP 40 * FROM 表 ORDER BY ID desc) t
通过ID,查询当前第30-40条记录 注意,ID不是顺序的前後會不會矛盾了?
用临时表吧。 select pid=identity(int,1,1),* into #temp from a 1、select top 10 * from #temp where id not in (select top 30 id from #temp order by id) order by id 2、select top 10 * from (select top 40 * from #temp order by id)a order by id desc
不好意思,上面敲错了。应该把所有id改为pid
问下楼上,用的那个写SQL CODE的工具是什么?好像很多人用哈,怎么我不知道的
select top 10 * from (select top 40 * from table1 order by id) t order by id desc
如果是SQL 2005, 用CTE最简单.With X as ( Select *, row_number() over(order by ID) as rowNum From 表 ) select * from X where rowNum between 30 and 40
select top 40 * into #t from table1; set rowcount 30 delete from #t; set rowcount 0 select * from #t
( SELECT TOP 40 * FROM 表 ORDER BY ID desc) t
注意,ID不是顺序的前後會不會矛盾了?
用临时表吧。
select pid=identity(int,1,1),* into #temp from a
1、select top 10 * from #temp where id not in (select top 30 id from #temp order by id) order by id
2、select top 10 * from (select top 40 * from #temp order by id)a order by id desc
( Select *, row_number() over(order by ID) as rowNum
From 表
)
select * from X
where rowNum between 30 and 40
set rowcount 30
delete from #t;
set rowcount 0
select * from #t