Sql 列出第30部门工资最高的员工姓名

Sql 列出第30部门工资最高的员工姓名,sql,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 285

列出第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
您的查询是选择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;

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

请将表架构添加到问题中,如果可能,请添加示例数据。
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;