oracle分页语句
分页语句:
select z.* from(select x.*,rownum members from reg_user x where rownum<=10) z where z.members>0
1 获取总页数
Sql代码 01.SELECT DECODE(mod(COUNT(*),100),0,COUNT(*)/100,TRUNC(COUNT(*)/100,0)+1) 02.AS pages FROM XZQH 其中XZQH是表名,可以换成别的表格或者与别的表格相连或者加上查询条件....总之可以把XZQH换成FROM后的一切东西.
100是每页显示的记录数,换成你想要的!!!
生成结果是具有pages列的一个表格.可以用resultSet.getInt("pages")获得
2 获取特定的记录数据
Sql代码 1.SELECT x.* from ( 2. SELECT z.*,rownum numbers from( 3. select * from XZQH where XXX order by XXX) z 4. where rownum<101) x 5.where x.numbers>90
或者: Sql代码 1.SELECT x.* from (SELECT z.*,rownum numbers from XZQH z where rownum<101) x 2. where x.numbers>90
其中XZQH的含义与上述一样,可以换成你任何想要的条件和表连接 其中101和90是指定界限的数字,拿此例来说,是取出第90-----100条数据.
也可以直接用分析函数
Sql代码 01.SELECT X.* 02.FROM ( 03. SELECT 04. ROW_NUMBER() OVER(order by XXX) AS numbers 05. , XZQH.* 06. FROM XZQH 07. WHERE XXX 08.) X 09.WHERE X.numbers < 101 10. AND X.numbers > 90 11.
不用分析函数你这个到1万条以后翻页很慢,用分析函数最后一页很慢。用哪种方式要看系统需求了,如果大多数情况下只是浏览前面的数据,就加hint first_row
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。