六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 70|回复: 0

常用的分页函数

[复制链接]

升级  55%

113

主题

113

主题

113

主题

举人

Rank: 3Rank: 3

积分
365
 楼主| 发表于 2013-1-13 18:56:33 | 显示全部楼层 |阅读模式
 方法大致有三种:
1:)用next()方法:(最通用的方法)
选从50-100行
int CurrentRow = 1;
int MinRow = 50;
int MaxRow = 100;
while(rs.next())
{
if (CurrentRow<MinRow)
{
CurrentRow++;
continue;
}
}
2:)用abslout(int row)定位:
先定位到50行,然后next(); (不是所有的jdbc驱动程序都支持)
3:)用sql完成:
SqlServer的语句:
select top 50 * from (select top 100 * from sysobjects order by id desc) as a order by id
或者 SELECT TOP PageSize * FROM(SELECT TOP nPage*PageSize * from YOURTABLE )
Oracle的语句:
select * from (select rownum r ,* from test) tt
where tt.r > 50 and tt.r <= 100;
DB2中:
select * from payment fetch first 5 row only --查前5条记录
(DB2中只支持查上面的形式,既只能查前n条,不支持查后n条,此经验,我已经得到ibm的确认)
测试速度 :
abslute()最慢;定位到10000条以后无法忍受!
next();前面几条快,越往后越慢!
SqlServer语句,比next快很多,但也是越往后越慢!
Oracle语句,最快!几乎不受条数影响!(这主要是由于oracle的强大性能决定的)
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表