列出部门30中薪水最高的员工的姓名

时间:2019-04-15 01:37:37

标签: sql

列出部门30中薪水最高的一个或多个雇员的姓名

SQL> SELECT DEPTNO, ENAME, SAL
     FROM EMP
     WHERE SAL IN (SELECT MAX(SAL) FROM EMP)
     AND EMP.DEPTNO = 30;

未选择行

希望像这样:

    DEPTNO ENAME             SAL
---------- ---------- ----------
        30 BLAKE             2850

1 个答案:

答案 0 :(得分:0)

SELECT DEPTNO, ENAME, SAL
FROM EMP
WHERE SAL IN (SELECT MAX(SAL) FROM EMP) AND
      EMP.DEPTNO = 30

您的查询正在选择部门30中薪水最高的所有员工。

内部查询和外部查询都需要条件:

SELECT e.DEPTNO, e.ENAME, e.SAL
FROM EMP e
WHERE e.SAL = (SELECT MAX(e2.SAL)
               FROM EMP e2
               WHERE e2.DEPTNO = e.DEPTNO
              ) AND
      e.DEPTNO = 30;

该子查询称为相关子查询,因为WHERE条件链接到外部查询。