列出部门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
答案 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
条件链接到外部查询。