|
发表于 2020-1-17 20:54:01
|
显示全部楼层
--建立环境,临时表#,内容略
--建立唯一递增ID,如果有的话不用建立
select id=identity(int,1,1),* into ## from #
--按递增序列分组
select *,(select isnull(max(id),0) from ## where id<t.id and field2>t.field2) as page into ### from ## t
--查询
declare @page int
set @page=1 --设置页码
exec('select * from ### where page=(select top 1 page from (select distinct top '+@page+' page from ### order by page ) tt order by page desc)')
--结果
1 a 1 dd 0
2 a 2 ee 0
3 a 3 ee 0
4 a 4 ee 0
--当set @page=2 的结果
5 a 1 c 4
6 a 2 e 4
7 a 3 NULL 4
--当set @page=3 的结果
8 a 1 8 7
9 a 2 5 7
10 a 2 4 7 |
|