首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL简单的分页有关问题

2012-03-16 
SQL简单的分页问题SQL codeSELECT TOP 页大小FROM table1WHERE id (SELECT ISNULL(MAX(id),0)FROM(SELECT

SQL简单的分页问题

SQL code
SELECT TOP 页大小FROM table1WHERE 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号. 然后在取大于第二页最大号的数据,就是你要第三页的数据.取多少数据根据页大小决定了.

不知我说明白了没.

热点排行