zoukankan      html  css  js  c++  java
  • [oracle] rownum、order by 组合实现top N

    在Oracle中实现select top N: 由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum 的组合来实现select top n的查询。 简单地说,实现方法如下所示:

    select 列名1 ...列名n from ( select 列名1 ...列名n    from 表名 order by 列名1 ) where rownum <=N(抽出记录数) order by rownum asc

    如:select id,name from (select id,name from student order by name) where rownum<=10 order by rownum asc

    按姓名排序取出前十条数据

    附:取100-150条数据的方法

    1. 最佳选择利用分析函数

           row_number() over ( partition by col1 order by col2 )                               

    比如想取出100-150条记录,按照tname排序      select tname,tabtype from (                               

         select tname,tabtype,row_number() over ( order by tname ) rn from tab                

    ) where rn between 100 and 150;

    2. 使用rownum 虚列

    select tname,tabtype from (                    

          select tname,tabtype,rownum rn from tab where rownum <= 150                  

    ) where rn >= 100;

    文章来源:http://www.cnblogs.com/yangxia-test/archive/2012/09/20/2695617.html

  • 相关阅读:
    二次识别
    IPC
    HW
    数据库异常:SQL Error: 0, SQLState: S0022
    mysql 分页查询
    [Err] 1248
    名句摘抄
    理智向左 疯狂向右
    kindle怎么导入电子书
    设置 myeclipse 编码格式
  • 原文地址:https://www.cnblogs.com/kentyouyou/p/3431386.html
Copyright © 2011-2022 走看看