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;
}
基本思路就是这些,还有很多细节的地方,今后再完善。