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

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;
   }

基本思路就是这些,还有很多细节的地方,今后再完善。

 

 

你可能感兴趣的:(C++,c,db2,C#)