有没有别的主键?使用领事表排序可能lz用得着DECLARE @S INT, @E INTSET @S = 1000
SET @E = 2000SET ROWCOUNT NSELECT IDENTITY(INT, 1, 1) AS ROWNO, ID INTO # FROM 表 ORDER BY 价格SELECT A.*
FROM
表 AS A
INNER JOIN
(SELECT ID FROM # WHERE ROWNO BWTWEEN @S AND @E) AS B
ON A.ID = B.IDDROP TABLE #

解决方案 »

  1.   

    dutguoyi(新鲜鱼排)>>"排序即使有相同的值,那么每次排序顺序都是一样的。
    即使你从中间截断读取,那么下次还是这样排序,所以读取的话没有区别。"这个我明白,但是排序有相同的值就不能用min算法来排序了啊;Reeezak(坚持信念)>>您写的存储过程效地看不懂啊!网上有很多分页算法,但是sqlserver的好像除了top就是min/max了引用别人说法“
    不同的数据库使用不同的算法
    mysql用 limit
    oracle用 rownum
    sql server用 top
    ”SqlServer 在大数据量下,并且排序值不递增的情况下[例如我要按照年龄顺序分页显示用户信息]用什么算法效率好呢?
    难道只能用Top了?
      

  2.   

    Reeezak(坚持信念),能不使用存储过程吗?那东西我没用过:(谢谢了数据表是这样的 book表
    bookId
    bookKind
    bookName
    bookPrice
    createTime
    用createTime分页很容易,请帮我写一个用bookPrice分页的算法!
      

  3.   

    可不可以这样做呢
    在表中另外建一个列priceSort它的值==bookPrice+当前之间;这样priceSort就是唯一排序的,而且保持了bookPrice的顺序!