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

     这样就完成了分页查询了

  • 相关阅读:
    Java流程控制,用户交互scanner和运算结构
    Day14_Date类
    Day14_BigDecimal的使用
    Day14_StringBuffer和StringBuilder
    Day14_String概述
    装箱、拆箱面试题
    Day14_类型转换与装箱、拆箱
    简单的银行小案例
    Day12_面向对象 异常处理机制
    Day12_面向对象 异常机制
  • 原文地址:https://www.cnblogs.com/liujiayun/p/5720612.html
Copyright © 2011-2022 走看看