共计 2843 个字符,预计需要花费 8 分钟才能阅读完成。
在 Oracle 中因为没有 top 关键字,所以在 sqlserver 中的分页代码并不适用于 Oracle,那么在 Oracle 中如何来实现分页呢?
– 查询所有数据
STUNO STUNAME STUAGE STUID STUSEAAT
—— ——————– ———- ———- ———-
9 王五 15 5.9876E+15 5
13 哈哈 15 5.9876E+15 5
15 李四 12 1.5666E+10 6
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
比如说我要查询 stuInfo 表中第二到第四条记录
– 两层嵌套分页
SQL> – 两层嵌套分页
SQL> select * from (select stuInfo.*,rownum as rn from stuInfo where rownum<=4) where rn >=2;
STUNO STUNAME STUAGE STUID STUSEAAT RN
—— ——————– ———- ———- ———- ———-
13 哈哈 15 5.9876E+15 5
15 李四 12 1.5666E+10 6
1 66 10 5566554666 5
– 如果我没有对原始表有其他的排序操作的话,两层嵌套就可以满足需求了,但是如果我有一个条件是必须先将学号进行降序排列,然后取第二到第四条记录呢?
那么就必须使用三层嵌套了
SQL> select * from (select stu.* , rownum as rn from (select stuInfo.* from stuI
nfo order by stuno desc) stu where rownum<=4) where rn>=2;
STUNO STUNAME STUAGE STUID STUSEAAT RN
—— ——————– ———- ———- ———- ———-
15 李四 12 1.5666E+10 6 2
13 哈哈 15 5.9876E+15 5 3
1 66 10 5566554666 5 4
这样就完成了分页查询了
更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-08/133777.htm