select * from ( select row_.*, rownum rownum_ from ( query_SQL ) row_ where rownum < =max) where rownum_ >= min
select * from (select e.*,rownum rn from (select * from emp) e) a1 where a1.rn > min and a1.rn < max;
select * from (select a1.*,rownum rn from(select * from emp) a1 where rownum<=max) where rn>=min;
select * from (select e.*,rownum rn from emp e) a1 where a1.rn between min and max
2.SQL Server:
select top @pagesize * from tablename where id not in (select top @pagesize*(@page-1) id from tablename order by id) order by id
3.MySQL
select * from tablename limit position, counter
4.DB2
select * from (select *,rownumber() as ROW_NEXT from tablename) where ROW_NEXT between min and max
/**
* Oracle 分页sql语句生成方法
* @param sql sql语句
* @param pageIndex 页下标
* @param pageSize 页面大小
* @return
*/
public static String createOraclePagingSql(String sql, int pageIndex, int pageSize){
int m = (pageIndex-1) * pageSize;
int n = m + pageSize;
StringBuffer pagingSelect = new StringBuffer(100);
pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( ")
.append(sql)
.append(" ) row_ where rownum <=")
.append(n)
.append(") where rownum_ >")
.append(n);
return pagingSelect.toString();
}