2008-04-09

分页实现方法

一、分页公式:
所需总页数=(总记录数+每页显示记录数-1)/每页显示记录数
游标定位于结果集中的行号=(当前页号-1)*每页显示记录数

二、SQL Server:
create procedure proc_page
@curpage int,		--当前页号
@pagesize int,		--每页显示记录数
@count int output	--总记录数(输出参数)
as
declare @temp int
set @temp=(@curpage-1)*@pagesize	--游标定位于结果集中的行号
select @count=count(*) from categories
declare @sql varchar(200)
set @sql='select top '+convert(varchar(30),@pagesize)+' * from categories where categoryid not in (select top '+convert(varchar(30),@temp)+' categoryid from categories)'
exec(@sql)
print @sql
go

select * from categories
exec proc_page 1,5,2
exec proc_page 2,5,2


三、Oracle:
select * from (select rownum r,col1,col2 from tab) where r>=2 and r<=9;


返回有条件且经过排序的某段记录(三层结构)
select *
  from (select *
          from (select u.*, rownum num
                  from userinfo u
                 where siteid = 73
                 order by regtime desc)
         where num < 5)
 where num > 11;


返回最后1行记录
select *
  from (select u.*, rownum num from userinfo u)
 where num = (select count(*) from userinfo);


返回倒数第10行记录
select *
  from (select u.*, rownum num from user_info u)
 where num = (select count(*) - 10 from userinfo);
  • F03fa393-1d05-3064-a89e-ede24875c973-thumb
  • 描述:
  • 大小: 4.2 KB
  • 7aa636d4-2279-384d-a1c6-7497b3066dd2-thumb
  • 描述:
  • 大小: 2.7 KB
  • 67a5b00c-f888-382a-93c4-31290aab467c-thumb
  • 描述:
  • 大小: 3.3 KB
评论
发表评论

您还没有登录,请登录后发表评论

javaboy2006
搜索本博客
我的相册
A84ce64e-d101-3dad-9e62-8780e1c003ea-thumb
CommandPattern2
共 11 张
最近加入圈子
存档
最新评论