课件内容

Oracle SQL

3.4 内联视图子查询(inline view Subqueries):

通常的查询中,FROM子句后面都是具体的表名。然而,我们也可以在FROM后面跟上一个子查询作为中间数据结果集,这个中间结果集就是内联视图(inline view)。带有内联视图的子查询就是内联视图子查询。

   
例四:

    SELECT ename,job,sal,rownum

FROM (SELECT ename,job,sal FROM EMP ORDER BY sal);

     从这个例子我们应该注意到:

FROM子句后面的内联视图是可以使用ORDER BY子句进行排序的。然而,其它视图或子查询是不能用ORDER BY进行排序的。

另外,我们在内联视图可以排序的基础上,可以使用“TOP-N”查询得到一些有意义的结果集。例如,可以用下面的例子在EMP表中找出工资最低的五个员工的信息。

例五:

    SELECT ename,job,sal,rownum

FROM ( SELECT ename,job,sal FROM EMP ORDER BY sal)

        WHERE rownum<=5;

           Rownum是表内部的一个指示行号的列。