基於oracle的scott使用者下emp表的練習(子查詢篇)
阿新 • • 發佈:2018-12-25
select * from emp;
--1.查詢公司員工編號最小的員工姓名、工資和入職時間
select ename,sal,hiredate
from emp
where empno=(select min(empno) from emp);
--2.查詢和20號部門的員工入職年份和工作相同的員工姓名,工資和工作
select ename,sal,job
from emp
where (to_char(hiredate,'yyyy'),job)
in(select to_char(hiredate,'yyyy'),job from emp where deptno=20);
--3.查詢出公司所有是經理的員工姓名,工作,工資和部門編號;
select ename,job,sal,deptno
from emp e
where exists(select '1' from emp where mgr=e.empno);
--4.查詢部門平均工資大於2000的部門名稱和平均工資。
select e.deptno,avg(sal)
from emp e,dept d
where e.deptno=d.deptno
group by e.deptno
having avg(sal)>2000;
--5.查詢工資比自己經理高的員工姓名和工資,以及對應經理的姓名和工資
select e.ename,e.sal,m.ename,m.sal
from emp e,emp m
where e.mgr=m.empno
and e.sal>m.sal;
--6.查詢比本部門平均工資低的員工姓名、薪水和部門的平均工資
select e.ename,e.sal,d.avgsal
from emp e,(select deptno,avg(sal) avgsal
from emp
group by deptno) d
where e.deptno=d.deptno
and e.sal<d.avgsal;