1)当前页:即要显示或打开的那一页的页数
currPage
2)页面大小:即每页要显示数据的数量
如:每页都显示10条数据
pageSize
3)总数据:要显示的数据的总数,即要显示的结果集
totalSize
4)总页数:即显示总数据需要的页数
totalPage
它的计算公式为: (totalSize+pageSize-1)/pageSize
例如:
如要显示17条数据,每页显示5条,那么总页数: totalPage=(17+5-1)/5=4
5)计算当前页的第一条数据 计算公式:
(currPage-1)*pageSize+1
例如:
如要显示17 条数据,每页显示5条,那么第3页数据第一条数据是:
(3-1)*5+1=11
6)计算当前页的最后一条数据 计算公式:
(currPage-1)*pageSize+pageSize
例如:
如要显示17 条数据,每页显示5条,那么第3页数据最后一条数据是:
(3-1)*5+5=15
SQL SERVER 2005 实现分页的方式
--------------------------------------------------------------------------------
一:存储过程方式
if exists(select * from sysobjects where name='pro_pageData')
drop procedure pro_pageData
go
create procedure pro_pageData
@pageNum int
as
select *
from
(
select *, row_number() over (order by stuid) as rowno
from student
) as s
where rowno>=(@pageNum-1)*5+1 and rowno <= (@pageNum -1)*5+5;
go
exec pro_pageData 4
go
二:一般语句方式(预编译)
select *
from
(
select *, row_number() over (order by stuid) as rowno
from student
) as s
where rowno>=(?-1)*5+1 and rowno <= (?-1)*5+5;
三:按条件查询后再对结果进行分页
select *
from
(
select *, row_number() over (order by stuid) as rowno
from student
where 1=1 and stuName like '%罗%'
) as s
where rowno>=(1-1)*5+1 and rowno <= (1 -1)*5+5;
注意:第一个where 用来匹配查询条件;
第二个where 用来显示特定页数据;