1. 哪些部门的人数比20 号部门的人数多。
SELECT DEPTNO,COUNT(*) FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*) >
(SELECT COUNT(*) FROM EMP
WHERE DEPTNO = 20
);
2. SMITH的领导是谁(非关联子查询)。
SELECT ENAME
FROM EMP
WHERE EMPNO =
(SELECT MGR FROM EMP
WHERE ENAME='SMITH'
);
3.FORD 领导谁(非关联子查询)。
SELECT ENAME
FROM EMP
WHERE MGR IN
(SELECT EMPNO FROM EMP
WHERE ENAME='FORD'
);
4. SMITH 的领导是谁(关联子查询)。
SELECT ENAME
FROM EMP E1
WHERE EXISTS (
SELECT 1 FROM EMP E2
WHERE ENAME='SMITH'
AND E2.MGR = E1.EMPNO);
5. FORD 领导谁(关联子查询)。
SELECT ENAME
FROM EMP E1
WHERE EXISTS (
SELECT 1 FROM EMP E2
WHERE ENAME='FORD'
AND E2.EMPNO = E1.MGR);
6. 列出在同一部门共事,入职日期晚但工资高于其他同事的员工:名字、工资、入职日期
(关联子查询)。
SELECT ename 姓名,
SAL AS 工资,HIREDATE AS 入职日期
FROM EMP E1
WHERE EXISTS (
SELECT 1 FROM EMP E2
WHERE E2.DEPTNO = E1.DEPTNO
AND E1.HIREDATE > E2.HIREDATE
AND E1.SAL > E2.SAL
);
7. 哪些员工跟SMITH不在同一个部门(非关联子查询)。
SELECT ENAME
FROM EMP
WHERE DEPTNO <>
(SELECT DEPTNO FROM EMP
WHERE ENAME='SMITH'
);
8. 哪些员工跟SMITH不在同一个部门(关联子查询)。
SELECT ENAME
FROM EMP E1
WHERE NOT EXISTS (
SELECT 1 FROM EMP E2
WHERE E1.DEPTNO = E2.DEPTNO
AND E2.ENAME='SMITH'
);
9. RESEARCH部门有哪些职位(非关联子查询)。
SELECT DISTINCT JOB FROM EMP
WHERE DEPTNO = (
SELECT DEPTNO FROM DEPT
WHERE DNAME = ' RESEARCH');
10. RESEARCH部门有哪些职位(关联子查询)。
SELECT DISTINCT JOB FROM EMP
WHERE EXISTS(
SELECT 1 FROM DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND DEPT.DNAME = ' RESEARCH');