课件内容

Oracle SQL

3.3 多列子查询(Multiple-Column Subqueries):

前面两个例子中,主查询的WHERE子句中都只有一列。然而,有时需要主查询处理多列。例如,为了得到每个部门工资最高的员工信息,可以使用下面的例子。
   

例三:

    SELECT deptno,ename,job,sal FROM EMP

    WHERE (deptno,sal) IN (SELECT deptno,MAX(sal) FROM EMP

                         GROUP BY deptno);

     在使用多列子查询时必须注意:

A、 主查询中,必须把WHERE子句中需要的多个列用括号括起来,否则发生错误

B、 主查询WHERE子句中的列与子查询中返回的列必须匹配。