oracle数据库如何实现分页效果?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库如何实现分页效果?相关的知识,希望对你有一定的参考价值。

参考技术A 通过ROWNUM来实现
1.
查询前10条记录
SELECT
*
FROM
TestTable
WHERE
ROWNUM
<=
10
2.
查询第11到第20条记录SELECT
*
FROM
(SELECT
TestTable.*,
ROWNUM
ro
FROM
TestTable
WHERE
ROWNUM
<=20)
WHERE
ro
>
10
3.
Oracle
分页和排序:按照name字段升序排列后的前10条记录
SELECT
*
FROM
(SELECT
*
FROM
TestTable
ORDERY
BY
name
ASC)
WHERE
ROWNUM
<=
10
4.
按照name字段升序排列后的第11到第20条记录
SELECT
*
FROM
(SELECT
tt.*,
ROWNUM
ro
FROM
(SELECT
*
FROM
TestTable
ORDER
BY
name
ASC)
tt
WHERE
ROWNUM
<=20)
WHERE
ro
>
10

Oracle, SQL Server, My SQL如何实现数据分页查询语句

参考技术A Oracle, SQL Server 和MySQL的分页SQL语句如下:Oracle:方法一:SELECT * FROM(SELECT A.*, ROWNUM RNFROM (SELECT * FROM TABLE_NAME) AWHERE ROWNUM <= 40)WHERE RN = 21;方法二:SELECT * FROM(SELECT A.*, ROWNUM RNFROM (SELECT * FROM TABLE_NAME) A)WHERE RN between 21 and 40公认第二种方法效率没有第一种高。原因是第二种要把子查询执行完,而第一种方法子查询执行到Rownum=40后就结束了。MySQL:SELECT * FROM TABLE_NAME LIMIT 10, 20表示从第11条数据开始取20条数据返回,limit后的2个参数含义为:起点和步长,即从那条数据开始,取多少条数据,再如取前20条数据:SELECT * FROM TABLE_NAME LIMIT 0, 20SQL Server2000:SELECT TOP @pagesize * FROM TABLE_NAME WHERE id not in (SELECT TOP @pagesize*(@page-1) id FROM TABLE_NAME ORDER BY id) ORDER BY id本回答被提问者采纳

以上是关于oracle数据库如何实现分页效果?的主要内容,如果未能解决你的问题,请参考以下文章

oracle怎么实现分页

关于oracle分页顺序问题,我的代码可以实现分页,但是新添加进去的,顺序不是在最后

oracle数据库对查询后的结果分页如何实现和jsp分页

mybatis中oracle实现分页效果

初学oracle,怎样写一个oracle分页sql语句

Oracle, SQL Server, My SQL如何实现数据分页查询语句