zoukankan      html  css  js  c++  java
  • Oracle数据库分页查询的几种实现方法

    没有Sql Server有top那么好用,但是Oracle含有隐藏的rownum列可以灵活使用,使实现分页效果,pageSize默认10行

    方法一:

    select * from test where id not in (
    select id from test where rownum <= 10)
    and rownum <= 10 order by id
    /--此方法除去前10行数据,剩下的重新排序,选取前十行,相当于第二页显示

    方法二:

    SELECT * from test where  rownum <= 20 
    minus
    select * from test  where rownum <= 10
    /
    --此方法使用关键字minus 选出两页 再排除第一页 数据 ,使其显示第二页数据
    

    方法三:

    select id ,name from(
    select rownum as rowno,t.* from test t where rownum <= 20) 
    where rowno > 10
    /--此方法把rownum直接显式保存到结果集中,然后根据rowno方便选取数据,与方法一,类似..
    

      以上三种方法有严重的缺陷,分页一般是排序之后再分页,以上方法都没有实现排序,所以基本没有实际意义的,所以实际运用中要先排序,然后再进行分页

    例如

    select sno, sname, cname, degree from --最外层的table是利用rownum别名,查找出最终需求的记录(确定最小记录数)
    				(        --中间这个table是含有rownum where条件的,查找出已经排好序的最大 需求行以内记录(确定最大记录数)     
                                            select sno, sname, cname , degree,rownum r from
                                              (              --最里边这个是先排序后查找的table                             
                                                     select i.sno,sname,cname,degree 
                                                     from score s ,info i , course c 
                                                     where s.sno = i.sno and c.cno = s.cno 
                                                     order by i.sno asc
                                               )  
                                            where rownum <= 10
                                    )
    				 where r > 5 
             
    --最大记录数与最小记录数存在某种数学关系(rows = max - min),可在逻辑中使用                    
    

      

      

  • 相关阅读:
    在 Ubuntu 中运转 &micro;Torrent
    TestDisk & PhotoRec——两个数据规复软件
    Ext2 IFS For Windows
    Rainlendar-可定制的桌面日历
    Gimmix:一个新的 MPD 客户端播放器
    SuperSwitcher-桌面增强器械
    Audacity 1.2.6 & 1.3.2
    XChat 2.8.0
    Griffith:电影聚集筹划软件
    VLC media player 0.8.6a
  • 原文地址:https://www.cnblogs.com/whytohow/p/5026343.html
Copyright © 2011-2022 走看看