课堂练习
1.用相关子查询实现:
查询每个部门工资最低的两个员工编号、姓名、工资。
select empno,enamel,sal from emp a where 2>(select count(1) from emp b wehere a.deptno=b.deptno and a.sal>b.sal);
2.查询每个部门工资前二。
select * from emp a where 2>(select count(1) from emp b where a.deptno=b.deptno and a.sal<b.sal);
select * from emp a where exists (select 1 from emp b where a.deptno=b.deptno and a.sal<b.sal having count(1)<2);
oracle
第八章
课后作业
1.用集合运算,列出不包含job为SALESMAN 的部门的部门号。
select deptno from emp minus select deptno from emp where job='SALESMAN';
2.写一个联合查询,列出下面的信息:EMP表中所有雇员的名字和部门编号,不管他们是否属于任何部门。 DEPT表中的所有部门编号和部门名称,不管他们是否有员工。
select
3.用集合运算查询出职位为SALESMAN和部门编号为10的人员编号、姓名、职位,不排除重复结果。
4.用集合查询出部门为10和20的所有人员编号、姓名、所在部门名称。
第九章
练习1
1.用相关子查询实现:查询比自己所在职位平均工资高的员工姓名、职位。
2.用相关子查询实现:查询员工工资为其部门最低工资的员工编号、姓名、工资。
3.用相关子查询实现:查询每个部门工资最低的两个员工编号、姓名、工资
课后作业
如下练习,使用相关子查询完成。
1.写一个查询,来查找所有其薪水多于他所在部门的平均薪水的雇员,显示名字、部门号和部门的平均薪水,按平均薪水排序。
2.写一个查询显示所有雇员的 ID、名字和部门名字。
3.写一个查询,显示那些在其所在的部门中有一个或多个比他来的更晚但薪水更高的同事名字。