use master
go
set nocount on
go
set showplan_text on
go
--2012的OFFSET分页方式
select number 
from spt_values
where type='p'
order by number offset 10 rows fetch next 5 rows only;
go
--2005的ROW_NUMBER分页方式
select number from (
select number,row_number() over(order by number) as num from spt_values where type='p'
) t where num between 11 and 15
order by number asc
go
--2000的TOP分页方式
select number from (
select top 5 number from (
select top 15 number from spt_values where type='p' order by number asc
) t
order by number desc
) t 
order by number asc
go
set showplan_text off
go

解决方案 »

  1.   

    给你一个例子:
    declare @page_size int;
    declare @page_num int;--比如:每页10条记录
    set @page_size = 10;--比如:先取第1页
    set @page_num = 1;select *
    from
    (
    select *,   
           
           --这里按照@@servername来排序,
           --你可以根据需要按照id,sid,sname等字段来排序
           (row_number() over(order by @@servername) - 1) / @page_size as pagenum
    from sys.objects
    )t
    where pagenum = @page_num - 1
      

  2.   

    我目前用的就是 2000 的top 分页,效果不好