SqlServer 数据库中的分页语句时间
下文将为您介绍 SqlServer 数据库中的分页 SQL 语句,该语句一次查询,数据库只返回一
页的数据,供您参考,希望能对您有所帮助。
SqlServer 分页 SQL 语句特点:一次查询,数据库只返回一页的数据。而不是取出所有的数
据。
说明:
pagesize: 每页显示记录数
cureentpage:当前页数
select * from ( select TOP pagesize * FROM ( SELECT TOP pagesize*cureentpage * from
user_table ORDER BY id ASC ) as aSysTable ORDER BY id DESC ) as bSysTable ORDER
BY id ASC
例子说明:
假如数据库表如下:
user_table:
id:主键,自增
username:字符
password:字符
假设有 80 条记录,每页显示 10 条记录,id 从 1 到 80
现在按照 id 升序排列取出第三页的数据应该为:所取得记录的 id 应该为 21 到 30。
这时该语句应该为:
select * from ( select TOP 10 * FROM ( SELECT TOP 30 * from user_table ORDER BY id
ASC ) as aSysTable ORDER BY id DESC ) as bSysTable ORDER BY id ASC
原理如下:
(1)先按照 id 从小到大升序取出 30 条记录(3*10),也就是:id 在 1-30 之间的记录
(SELECT TOP 30 * from user_table ORDER BY id ASC)
(2)然后按照 ID 降序排列这 30 条记录,得到记录为 id 在:从 30 到 1
(3)然后在这些 30 条记录中取出前 10 条记录:取得的记录为:id 在 30-21 之间。这就是
我们需要的数据,但这时是按照降序排列的,不符合要求。
(4)最后在重新排序得到最终我们需要的数据。id 在 21-30 之间。
评论4