none
问个SQL分页的问题 RRS feed

  • 问题

  • 方法1:SELECT TOP 页大小 *
    FROM TestTable
    WHERE 条件 and ID NOT IN
              (SELECT TOP 页大小 * ( - 1 ) id
             FROM 表 where 条件
             ORDER BY 字段)
    ORDER BY 字段

    方法2:select * from (select row_number() over(order by 字段)  row_id,TestTable.* from TestTable where 条件) temTable where row_id between(页大小 * ( - 1 ),页的大小*页数

     

    这两种方法,哪一种更好?


    2010年3月25日 9:28

答案

  • 我个人理解,方法1:就是固定ID,方法2:就是以行号为ID

    我个人认为方法1好点。

    1.可以扩展至sql2000

    2.如果ID是主键的话,效率较好

    • 已标记为答案 male110 2010年3月27日 3:54
    2010年3月25日 10:39