Oracle中的TOP(order by 结合使用rownum)

例子很简单 scott用户下,对emp表的操作

主要通过这个例子来更好的理解关于order by 结合使用rownum的情况
(可以理解为是通过对自己筛选的行按照要求进行排列)

例子如下:
select *
from(
  select empno,job,mgr
  from emp
   order by mgr desc)a
--此a代表的视为内嵌视图:inline view:并不是存储在DB中的命名视图
where rownum<=5;

     EMPNO JOB              MGR
---------- --------- ----------
      7839 PRESIDENT
      7370 CLERK           7902
      7597 MANAGER         7839
      7699 MANAGER         7839
      7813 MANAGER         7839

select *
from(
    select empno,job,mgr
   from emp
    order by mgr)
where rownum<=5;
     EMPNO JOB              MGR
---------- --------- ----------
      7788 ANALYST         7566
      7902 ANALYST         7566
      7499 SALESMAN        7698
      7521 SALESMAN        7698
      7844 SALESMAN        7698
======================================================================
以下结果是先返回表的前5条记录,然后按照order by mgr;进行默认的升序排列
======================================================================
select empno,job,mgr
from emp
where rownum<=5
order by mgr;
     EMPNO JOB              MGR
---------- --------- ----------
      7499 SALESMAN        7698
      7521 SALESMAN        7698
      7654 SALESMAN        7698
      7597 MANAGER         7839
      7370 CLERK           7902
========================
原始数据:

select empno,job,mgr
from emp;

EMPNO JOB              MGR
----- --------- ----------
7370 CLERK           7902
7499 SALESMAN        7698
7521 SALESMAN       7698
7597 MANAGER         7839
7654 SALESMAN        7698
7699 MANAGER         7839
7813 MANAGER         7839
7788 ANALYST         7566
7839 PRESIDENT
7844 SALESMAN        7698
7877 CLERK           7788
7900 CLERK           7698
7902 ANALYST         7566
7965 CLERK           7782

posted on 2008-06-18 15:15 球球 阅读(1405) 评论(0)  编辑  收藏 所属分类: Oracle


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

留言簿(1)

文章分类(19)

文章档案(19)

积分与排名

最新随笔

最新评论