Oracle中经典分页代码!

在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表中第三,到第4条记下

 

–两层嵌套分页

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

 那样就到位了分页查询了

 

相关文章