1. 列出至少有一个雇员的所有部门。
1
|
select * from dept where deptno in ( select deptno from emp group by deptno having count (*)>0)
|
2. 列出薪金比“SMITH”多的所有雇员。
1
|
select * from emp where sal>( select sal from emp where ename= 'SMITH' )
|
3. 列出所有雇员的姓名及其上级的姓名。
1
|
select a.ename,b.ename from emp a,emp b where a.mgr=b.empno
|
4. 列出入职日期早于其直接上级的所有雇员。
1
|
select ename from emp a where hiredate<( select hiredate from emp where empno=a.mgr)
|
5. 列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门。
1
|
select dname,ename from dept a,emp b where a.deptno=b.deptno(+)
|
6. 列出所有“CLERK”(办事员)的姓名及其部门名称。
1
|
select dname,ename from dept a,emp b where a.deptno=b.deptno and job= 'CLERK'
|
7. 列出各种类别的最低薪金,以使最低薪金等于 1500。
1
2
3
|
update emp set sal=1500
where empno in ( select empno from emp where (job,sal) in ( select job, min (sal) from emp group by job having min (sal)<1500))
|
8. 列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号。
1
|
select ename from emp where deptno=( select deptno from dept where dname= 'SALES' )
|
9. 列出薪金高于公司平均水平的所有雇员。
1
|
select ename from emp where sal>( select avg (sal) from emp)
|
10. 列出与“SMITH”从事相同工作的所有雇员。
1
|
select * from emp where job=( select job from emp where ename= 'SMITH' )
|
11. 列出薪金等于给予在部门 30 工作的雇员的薪金的所有雇员。
1
|
select * from emp where sal in ( select sal from emp where deptno=30)
|
12. 列出薪金高于在部门 30 工作的所有雇员的薪金的所有雇员。
1
|
select * from emp where sal> all ( select sal from emp where deptno=30)
|
13. 列出在每个部门工作的雇员的数量以及其他信息。
1
|
select dept.*,t. count from dept, ( select deptno, count (*) count from emp group by deptno) t where dept.deptno=t.deptno
|
14. 列出所有雇员的雇员名称、部门名称和薪金。
1
|
select ename,dname,sal from emp,dept where emp.deptno=dept.deptno
|
15. 列出从事同一种工作但属于不同部门的雇员的不同组合。
1
|
select a.ename,b.ename,a.job,a.deptno,b.deptno from emp a,emp b where a.job=b.job and a.deptno!=b.deptno
|
16. 列出分配有雇员数量的所有部门的详细信息,即使是分配有 0 个雇员。
1
2
3
|
select dept.deptno,dname,loc, count (empno) from dept,emp
where dept.deptno=emp.deptno(+) group by dept.deptno,dname,loc order by dept.deptno
|
17. 列出各种类别工作的最低工资。
1
|
select job, min (sal+nvl(comm,0)) from emp group by job;
|
18. 列出各个部门的 MANAGER(经理)的最低薪金。
1
|
select deptno, min (sal) from emp where job= 'MANAGER' group by deptno
|
19. 列出按计算的字段升序排序的所有雇员的年薪。
1
|
select ename,sal*12 年薪 from emp order by 年薪 ASC
|
20. 列出薪金水平处于第四位的雇员。
1
|
lect * from ( select rownum num,empno,ename from emp order by sal) where num=4
|
1. 列出至少有一个雇员的所有部门。
1
|
select * from dept where deptno in ( select deptno from emp group by deptno having count (*)>0)
|
2. 列出薪金比“SMITH”多的所有雇员。
1
|
select * from emp where sal>( select sal from emp where ename= 'SMITH' )
|
3. 列出所有雇员的姓名及其上级的姓名。
1
|
select a.ename,b.ename from emp a,emp b where a.mgr=b.empno
|
4. 列出入职日期早于其直接上级的所有雇员。
1
|
select ename from emp a where hiredate<( select hiredate from emp where empno=a.mgr)
|
5. 列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门。
1
|
select dname,ename from dept a,emp b where a.deptno=b.deptno(+)
|
6. 列出所有“CLERK”(办事员)的姓名及其部门名称。
1
|
select dname,ename from dept a,emp b where a.deptno=b.deptno and job= 'CLERK'
|
7. 列出各种类别的最低薪金,以使最低薪金等于 1500。
1
2
3
|
update emp set sal=1500
where empno in ( select empno from emp where (job,sal) in ( select job, min (sal) from emp group by job having min (sal)<1500))
|
8. 列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号。
1
|
select ename from emp where deptno=( select deptno from dept where dname= 'SALES' )
|
9. 列出薪金高于公司平均水平的所有雇员。
1
|
select ename from emp where sal>( select avg (sal) from emp)
|
10. 列出与“SMITH”从事相同工作的所有雇员。
1
|
select * from emp where job=( select job from emp where ename= 'SMITH' )
|
11. 列出薪金等于给予在部门 30 工作的雇员的薪金的所有雇员。
1
|
select * from emp where sal in ( select sal from emp where deptno=30)
|
12. 列出薪金高于在部门 30 工作的所有雇员的薪金的所有雇员。
1
|
select * from emp where sal> all ( select sal from emp where deptno=30)
|
13. 列出在每个部门工作的雇员的数量以及其他信息。
1
|
select dept.*,t. count from dept, ( select deptno, count (*) count from emp group by deptno) t where dept.deptno=t.deptno
|
14. 列出所有雇员的雇员名称、部门名称和薪金。
1
|
select ename,dname,sal from emp,dept where emp.deptno=dept.deptno
|
15. 列出从事同一种工作但属于不同部门的雇员的不同组合。
1
|
select a.ename,b.ename,a.job,a.deptno,b.deptno from emp a,emp b where a.job=b.job and a.deptno!=b.deptno
|
16. 列出分配有雇员数量的所有部门的详细信息,即使是分配有 0 个雇员。
1
2
3
|
select dept.deptno,dname,loc, count (empno) from dept,emp
where dept.deptno=emp.deptno(+) group by dept.deptno,dname,loc order by dept.deptno
|
17. 列出各种类别工作的最低工资。
1
|
select job, min (sal+nvl(comm,0)) from emp group by job;
|
18. 列出各个部门的 MANAGER(经理)的最低薪金。
1
|
select deptno, min (sal) from emp where job= 'MANAGER' group by deptno
|
19. 列出按计算的字段升序排序的所有雇员的年薪。
1
|
select ename,sal*12 年薪 from emp order by 年薪 ASC
|
20. 列出薪金水平处于第四位的雇员。
1
|
lect * from ( select rownum num,empno,ename from emp order by sal) where num=4
|
本文转自stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1597907,如需转载请自行联系原作者