Oracle中实现分页的SQL语句
2008-08-20 11:23
381 查看
写了两个有关分页的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 XZQH z where rownum<101) x where x.numbers>90
其中XZQH的含义与上述一样,可以换成你任何想要的条件和表连接
其中101和90是指定界限的数字,拿此例来说,是取出第90-----100条数据.
好了,点到为止..具体在实践中该怎么用,大家自己慢慢琢磨吧!!!
时间:2008-06-14
引用 收藏
应该是:
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
否则你出来的结果不正确的
laodizhuq 写道
应该是:
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
ROW_NUMBER() OVER(order by XXX) AS numbers
, XZQH.*
FROM XZQH
WHERE XXX
) X
WHERE X.numbers < 101
AND X.numbers > 90
注意需要排序是使用:
ROW_NUMBER() OVER (ORDER BY field1,field2) AS rowNummber
不然不能总体排序,而是页内排序。
1 获取总页数
Sql代码
SELECT DECODE(mod(COUNT(*),100),0,COUNT(*)/100,TRUNC(COUNT(*)/100,0)+1)
AS pages FROM XZQH
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 XZQH z where rownum<101) x where x.numbers>90
SELECT x.* from (SELECT z.*,rownum numbers from XZQH z where rownum<101) x where x.numbers>90
其中XZQH的含义与上述一样,可以换成你任何想要的条件和表连接
其中101和90是指定界限的数字,拿此例来说,是取出第90-----100条数据.
好了,点到为止..具体在实践中该怎么用,大家自己慢慢琢磨吧!!!
时间:2008-06-14
引用 收藏
应该是:
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
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
否则你出来的结果不正确的
laodizhuq 写道
应该是:
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
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
ROW_NUMBER() OVER(order by XXX) AS numbers
, XZQH.*
FROM XZQH
WHERE XXX
) X
WHERE X.numbers < 101
AND X.numbers > 90
注意需要排序是使用:
ROW_NUMBER() OVER (ORDER BY field1,field2) AS rowNummber
不然不能总体排序,而是页内排序。
相关文章推荐
- 3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现
- oracle12c JSON数据 使用SQL语句实现多表左外连接 显示无效数据 分页查询
- Oracle中实现分页的sql语句
- 使用标准SQL语句实现分页操作(Oracle)
- sqlserver/mysql/oracle实现sql语句分页方法
- 3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现
- 3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现
- 在SQL Server中通过SQL语句实现分页查询(转)
- SQL实现分页(通过PHP)以及增删改查核心语句
- PL/SQL编程实现Oracle分页 java调用
- Oracle实现分页查询的SQL语法汇总
- 使用SQL语句实现真分页
- 用标准的SQL语句实现查询记录的分页
- ORACLE分页SQL语句
- Oracle 数据库的SQL语句分页
- C#拼接SQL语句,SQL Server 2005+,多行多列大数据量情况下,使用ROW_NUMBER实现的高效分页排序
- jsp + oracle 排序分页 高效sql语句
- ORACLE分页SQL语句
- Oracle创建主键自增表(sql语句实现)及触发器应用
- 解析Oracle实现分页查询语句