zoukankan      html  css  js  c++  java
  • 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表中第二到第四条记录

    --两层嵌套分页

    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

     这样就完成了分页查询了

  • 相关阅读:
    [NoiPlus2016]换教室
    [HNOI2013]游走
    [Noi2002]Savage
    [SDOI2010]古代猪文
    [JSOI2008]最小生成树计数
    [SCOI2010] 连续攻击游戏
    文艺平衡树
    指针FHQTreap
    HAOI2007 上升序列
    HNOI2008 玩具装箱
  • 原文地址:https://www.cnblogs.com/liujiayun/p/5720612.html
Copyright © 2011-2022 走看看