SQL练习进阶--SQL实例讲解(二)

2014-11-24 12:17:54 · 作者: · 浏览: 1
--6、列出所有job为“CLERK”(办事员)的姓名及其部门名称。
select emp.ename,emp.job,dept.dname from emp,dept
where emp.job = 'CLERK' and emp.deptno = dept.deptno;
--7、列出最低薪金大于1500的各种工作。
select job from emp
group by job
having min(sal)>1500;
--8、列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
select emp.ename from emp
where emp.deptno =
(select deptno from dept
where dept.dname = 'SALES');
--9、列出薪金高于公司平均薪金的所有员工。
select * from emp
where emp.sal > (select avg(sal) from emp)
--10、列出与“SCOTT”从事相同工作的所有员工。
select * from emp
where emp.job =
(select job from emp e
where e.ename = 'SCOTT');
www.2cto.com
--11、列出薪金等于部门3中员工的薪金的所有员工的姓名和薪金。
select ename,sal from emp
where sal in (select sal from emp where deptno=3);
--12、列出薪金高于在部门3工作的所有员工的薪金的员工姓名和薪金。
select ename,sal from emp
where sal > (select max(sal) from emp where deptno=3);
--13、列出在每个部门工作的员工数量、平均工资和平均服务期限。
--********由于平均服务期限无法考证求出,故只列出在每个部门工作的员工数量、平均工资。********--
select deptno,count(empno),avg(sal) from emp group by deptno
--14、列出所有员工的姓名、部门名称和工资。
select emp.ename as 姓名, dept.dname as 部门, emp.sal+emp.comm as 工资 from emp,dept
where dept.deptno = emp.deptno;
--15、列出从事同一种工作但属于不同部门的员工的一种组合。
select a.ename, b.ename, a.job, b.job, a.deptno, b.deptno from emp a,emp b
where a.job=b.job and a.deptno<>b.deptno;
--16、列出所有部门的详细信息和部门人数。
select dept.*,(select count(*) from emp where dept.deptno = emp.deptno) as pop from dept; www.2cto.com
--17、列出各种工作的最低工资。
select job,min((nvl(comm,0)+sal)) from emp group by job
--18、列出各个部门的MANAGER(经理)的最低薪金(job为MANAGER)。
select emp.deptno, min(sal) from emp,dept
where job = 'MANAGER'
group by emp.deptno
--19、列出所有员工的年工资,按年薪从低到高排序。
select ename,(nvl(comm,0)+sal)*12 年薪 from emp
order by 年薪 asc;
作者 liumeiqqzj