liuhl 发表于 2013-1-14 09:05:10

分页查找总结

select * from (select e.*,rownum rn from (select * from emp) e) a1 where a1.rn > 6 and a1.rn< 10;

    select * from (select a1.*,rownum rn from(select * from emp) a1 where rownum<=10) where rn>=6;

select * from (select e.*,rownum rn from emp e) a1 where a1.rn between 6 and 10;

    /**
         * Oracle 分页sql语句生成方法
         * @param sql sql语句
         * @param pageIndex 页下标
         * @param pageSize 页面大小
         * @return
         */
       publicstatic 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();   
       }



MySql分页查找
select * from dept order by deptno limit 4, 1;
表示从表dept的第四行 开始数后面的一条;

select * from dept order by deptno desc limit 4, 2;
表示从表dept的第四行开始,查找前面的两行;

在HQL中分页查找:
Query q = session.createQuery ( "from Category c order by c.name desc");
q.setMaxResult(4); 最多显示四条
q.setFirstResult(2); 设置从第二条开始
页: [1]
查看完整版本: 分页查找总结