六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 319|回复: 0

在DB2中分页查询的简单实现想法

[复制链接]

升级  33.33%

88

主题

88

主题

88

主题

举人

Rank: 3Rank: 3

积分
300
 楼主| 发表于 2013-1-25 22:44:24 | 显示全部楼层 |阅读模式
DB2 中怎么作分页查询
简单的查询方式为:
select a, b, c from (select a, b, c, rownumber() over(order by a asc) as rn from table_1 where 1=1) as a1 where a1.rn between 0 and 50
以上  a  b  c 为表的字段 table_1 为表名,查询从第0条记录到第50条记录。
但是必须每页记录下:
开始查询的条件:条件一,条件二.....
在开始查询时的所有记录数(总记录数,即满足条件的记录数)Count
总页数 pageNumber
当前页 nowPage
每页记录数 pageRows
   // 计算一共有多少页
   pageNumber = ((Count % pageRows) == 0) ? (Count / pageRows) : ((Count / pageRows) + 1);
   // 如果是上一页 action = "prePage" 注意: 检查 当前页 > 1
   if ("prePage".equals(action)) {
    if (nowPage <= 1) {
     throw new InputException("已经是第一页!");
    }
    nowPage = nowPage - 1; // 当前页必须减 一
    beginRow = (nowPage - 1) * pageRows;
    endRow = nowPage  * pageRows;
   }
   
   // 如果是下一页 action = "nextPage" 注意: 检查 当前页 < 总页数
   if ("nextPage".equals(action)) {
    if (nowPage >= pageNumber) {
     throw new InputException("已经是最后一页!");
    }
    nowPage = nowPage + 1; // 当前页必须加 一
    beginRow = (nowPage - 1) * pageRows;
    endRow = nowPage * pageRows;
   }
基本思路就是这些,还有很多细节的地方,今后再完善。
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

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