例子很简单 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