public static String getPageSql(String sql, int start, int end, int totalCount) {
if (start == 0) {
// 查询第一页,且查询的条数大于总条数 直接返回sql
if (totalCount <= end) {
return sql;
} else {
return String.format(" select tmp.* from ( %1$s ) tmp where rownum <= " + end, sql);
}
}
// 如果结束条数大于等于总条数,不加分页尾
if (totalCount <= end) {
return String.format(" select * from (select tmp., rownum rn from ( %1$s ) tmp ) where rn > "+start, sql);
}
String pageSql = " select * from (select tmp., rownum rn from ( %1$s ) tmp %2$s ) %3$s";
return String.format(pageSql, sql, " where rownum <= " + end, " where rn > " + start);
}