有没有别的主键?使用领事表排序可能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 #
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 #
即使你从中间截断读取,那么下次还是这样排序,所以读取的话没有区别。"这个我明白,但是排序有相同的值就不能用min算法来排序了啊;Reeezak(坚持信念)>>您写的存储过程效地看不懂啊!网上有很多分页算法,但是sqlserver的好像除了top就是min/max了引用别人说法“
不同的数据库使用不同的算法
mysql用 limit
oracle用 rownum
sql server用 top
”SqlServer 在大数据量下,并且排序值不递增的情况下[例如我要按照年龄顺序分页显示用户信息]用什么算法效率好呢?
难道只能用Top了?
bookId
bookKind
bookName
bookPrice
createTime
用createTime分页很容易,请帮我写一个用bookPrice分页的算法!
在表中另外建一个列priceSort它的值==bookPrice+当前之间;这样priceSort就是唯一排序的,而且保持了bookPrice的顺序!