解决方案 »

  1.   

    如果是2005及以后的版本,可以用row_number函数:
    select *
    from 
    (
    select *,
           ROW_NUMBER() over(order by DateTime desc) rownum
    from Base_Sale 
    )t
    where rownum <= 20
      

  2.   

    时间有重复就会不准确,如果非要按时间分页且时间还有重复,就先把时间排序,然后加上row_number(),然后按照这个行号分页!
    实际上就是用行号代替了排完序的时间(同一时间也会有不同的行号);分页一定要是唯一的值。
      

  3.   

    分页的那个ID必须是唯一的。时间有可能重复。
    如果你的ID是自增的话 就可以用ID分页。
      

  4.   

    按照上面的写法,这SQL 应该怎么修改啊
      

  5.   

    针对这个sql 要如何修改啊,小弟我刚学习
      

  6.   

    你上面的代码比较适合表中已经存在固定的自增ID,而不是动态生成,如果是动态,你可以先做一个临时表,把数据集都加上ID,然后你上面的代码中表名换成临时表
      

  7.   

    string sql = " select top " + NumPerPage + " * from Base_Sale where DateTime not in (select top " + ((PageNum - 1) * NumPerPage) + " DateTime from Base_Sale where  1=1 " + GetWhere() + " order by DateTime desc) " + GetWhere() + " order by DateTime desc";
    已经解决了,谢谢各位了DateTime from和DateTime not in 把这两个换成ID就没问题了,