sql 分页查询

Posted innocent-of-dabber

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 分页查询相关的知识,希望对你有一定的参考价值。

数据过多时sql中返回数据,开销大,用户还不一定会用到。这时使用sql分页查询,更具用户操作返回对应的数据就能极大程度提高效率。

分页有多种方法:top in、exist、row_number()等,在此只叙述相对高效的

max/top  分页方式

1.原始的

  select * from dbo.pagetest where id >(select max(id) from (select top(9900) id from dbo.pagetest order by id)a) order by id

2.封装存储过程

 create Proc pageSeparate(
 @count int, -- 数据条数
 @tabName nvarchar(50), --表名
 @pageIndex int --区间 多少也开始查询
)
as
begin
 declare @sqlStr nvarchar(max)
 set @sqlStr = ‘select * from ‘[email protected]+‘ where id >(select max(id) from (select top(‘+cast((@pageIndex*@count)as nvarchar(20))+‘) id from ‘[email protected] +‘ order by id)a) order by id‘
 print @sqlStr
 exec(@sqlStr)
end












以上是关于sql 分页查询的主要内容,如果未能解决你的问题,请参考以下文章

一条sql语句实现分页查询,且能返回记录总数

sqlserver多表查询分页语句

如何用sql语句 实现分页查询

【SQL语句】-分页查询limit的用法

分页查询的sql 语句(参数1,参数2)?怎么写?

有join的sql语句如何写分页查询?