使用sql语句的两种分页方法

使用存储过程

1.使用top方法

<pre name="code" class="sql">--一条一条的访问数据库
Create procedure data_page
@num int,--每页的信息数
@i int--接受是第几页
as
declare @n int
--存储总信息数
set @n=(select COUNT(*) from people)
if(@i<=@n/@num)
begin
select top (@num) * from people 
where P_id in(select top (@i*@num) p_id from people order by p_id asc) 
order by p_id desc
end
--如果最后一张不是完整的一页
--进入一面的判断
if(@i*@num-@n>0)
	select top (@n-(@i-1)*@num) * 
	from people order by p_id desc
go
exec data_page 5,1
--删除存储过程
drop procedure data_page


 
 
 
 

2.使用sql里面的内置函数row_number(可以生成行号)

<pre name="code" class="sql">--内置函数ROW_NUMBER()的使用
--给每行加编号
select *,row_number() over(order by p_id) as rows from people
--按组进行编号,以5行为一组
select *,((ROW_NUMBER() over(order by p_id)-1)/5 as rows from people
go
--利用编号进行分页

create procedure proSplitPage
@peerPageRows int,--每页要显示的行数
@indexPage int--接受要显示第几页
as

select p_id,p_name,p_pwd,p_age,register_time from 
(select *,(ROW_NUMBER() over(order by p_id))-1)/@peerPageRows  as rows
from people) as tb where rows=@indexPage-1


 
  


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值