SQL简单的分页问题
SQL code
SELECT TOP 页大小
FROM table1
WHERE id >
(
SELECT ISNULL(MAX(id),0)
FROM
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
)A
)
ORDER BY id
关于这个SQL分页的模式,应该如何应用。 我在(页数-1)这里不明白,请大侠指点,谢谢。
------解决方案--------------------2.分页SQL语句
select * from(select (row_number() OVER (ORDER BY tab.ID Desc)) as rownum,tab.* from 表名 As tab) As t where rownum between 起始位置 And 结束位置
--可以试试这个语句
------解决方案--------------------你上面的SQL 是要找出第N页的数据。所以 ID>(子查询)里面为了找出N-1页的最大ID。因为大于此ID的数据为第N页的数据。TOP 页大小是取出 大于N-1页的最大ID后面的一页(第N页)的数据。因为整个语句是按ID从小到大排序的。
------解决方案--------------------例如按每页20条进行分页
第一页 1-20条
第二页 21-40条
------解决方案--------------------比如说你现在取第三页的数据,(页数-1)就是先得到第二页的最大ID号. 然后在取大于第二页最大号的数据,就是你要第三页的数据.取多少数据根据页大小决定了.
不知我说明白了没.