文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>也谈数据分页

也谈数据分页

时间:2011-02-14  来源:钢钢

分页的相关概念:

 

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 用来显示特定页数据;

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载