Oracle中实现分页的sql语句
2011-09-13 12:04
549 查看
写了两个有关分页的SQL 语句,希望对大家有点帮助...记住,只能在Oracle下使用
1 获取总页数
Sql代码
SELECT DECODE(mod(COUNT(*),100),0,COUNT(*)/100,TRUNC(COUNT(*)/100,0)+1)
AS pages FROM XZQH
其中XZQH是表名,可以换成别的表格或者与别的表格相连或者加上查询条件....总之可以把XZQH换成FROM后的一切东西.
100是每页显示的记录数,换成你想要的!!!
生成结果是具有pages列的一个表格.可以用resultSet.getInt("pages")获得
2 获取特定的记录数据
Sql代码
SELECT x.* from (
SELECT z.*,rownum numbers from(
select * from XZQH where XXX order by XXX) z
where rownum<101) x
where x.numbers>90
或者:
Sql代码
SELECT x.* from (SELECT z.*,rownum numbers from XZQH z where rownum<101) x
where x.numbers>90
其中XZQH的含义与上述一样,可以换成你任何想要的条件和表连接
其中101和90是指定界限的数字,拿此例来说,是取出第90-----100条数据.
也可以直接用分析函数
Sql代码
SELECT X.*
FROM (
SELECT
ROW_NUMBER() OVER(order by XXX) AS numbers
, XZQH.*
FROM XZQH
WHERE XXX
) X
WHERE X.numbers < 101
AND X.numbers > 90
不用分析函数你这个到1万条以后翻页很慢,用分析函数最后一页很慢。用哪种方式要看系统需求了,如果大多数情况下只是浏览前面的数据,就加hint first_row
1 获取总页数
Sql代码
SELECT DECODE(mod(COUNT(*),100),0,COUNT(*)/100,TRUNC(COUNT(*)/100,0)+1)
AS pages FROM XZQH
其中XZQH是表名,可以换成别的表格或者与别的表格相连或者加上查询条件....总之可以把XZQH换成FROM后的一切东西.
100是每页显示的记录数,换成你想要的!!!
生成结果是具有pages列的一个表格.可以用resultSet.getInt("pages")获得
2 获取特定的记录数据
Sql代码
SELECT x.* from (
SELECT z.*,rownum numbers from(
select * from XZQH where XXX order by XXX) z
where rownum<101) x
where x.numbers>90
或者:
Sql代码
SELECT x.* from (SELECT z.*,rownum numbers from XZQH z where rownum<101) x
where x.numbers>90
其中XZQH的含义与上述一样,可以换成你任何想要的条件和表连接
其中101和90是指定界限的数字,拿此例来说,是取出第90-----100条数据.
也可以直接用分析函数
Sql代码
SELECT X.*
FROM (
SELECT
ROW_NUMBER() OVER(order by XXX) AS numbers
, XZQH.*
FROM XZQH
WHERE XXX
) X
WHERE X.numbers < 101
AND X.numbers > 90
不用分析函数你这个到1万条以后翻页很慢,用分析函数最后一页很慢。用哪种方式要看系统需求了,如果大多数情况下只是浏览前面的数据,就加hint first_row
相关文章推荐
- oracle12c JSON数据 使用SQL语句实现多表左外连接 显示无效数据 分页查询
- sqlserver/mysql/oracle实现sql语句分页方法
- Oracle中实现分页的SQL语句
- 使用标准SQL语句实现分页操作(Oracle)
- 3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现
- 3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现
- 3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现
- oracle 分页sql 语句比较
- ORACLE分页SQL语句
- MyBatis中实现动态的SQL语句、分页以及mybatis的常用的配置
- oracle mysql SqlServer 实现分页查询语句
- Oracle 查看表空间的大小及使用情况sql语句和oracle增加表空间大小两种实现方法
- ORACLE中一个SQL语句实现横向汇总和纵向汇总(求每个学生的总成绩,每学科总成绩和全班总成绩)
- ORACLE 分页SQL语句
- SQL大语句——实现分页,select top后面跟变量出错
- sqlServer 中使用sql语句实现固定分页功能
- MySql实现分页查询的SQL,mysql实现分页查询的sql语句
- 【转】在SQL Server中通过SQL语句实现分页查询
- SQL存储过程分页(通用的拼接SQL语句思路实现)
- 分页语句 mysql 、server sql、oracle的分页语句