解决方案 »

  1.   

    因为你每次都取出select ROW_NUMBER() OVER(ORDER BY date) AS rownum ,A.* from SUMData A的数据,注意你没有where条件,所以永远都是那个数据。建议你加上主键
      

  2.   

    建议
    1.加上主键.
    2在需要排序的字段上建索引.
    3.避免使用select *.
      

  3.   


    ROW_NUMBER() OVER(ORDER BY date) 改成ROW_NUMBER() OVER(ORDER BY id) 数据就不重复了,不会吧。虽然这样导致,排的顺序不同,但是你的数据是没有变化的,比如,每页10条数据,现在日期为xxx的一个11条,那么第一页就是10条,第二页就只有1条吧。
      

  4.   

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

  5.   

    按照你的代码改了,你试试,有没有重复的数据:
    declare @page_size int;
    declare @page_num int;--比如:每页10条记录
    set @page_size = 10;--比如:先取第1页
    set @page_num = 1;select *
    from
    (
    select A.*,          (row_number() over(order by date) - 1) / @page_size as pagenum
    from SUMData A  
    )t
    where pagenum = @page_num - 1