–1.取得最后入職的5名員工
select *
from (
select *
from emp
order by hiredate desc
)
where rownum<=5;

–2取得每個薪水等級有多少員工
select s.grade "工資等級",count(*) "人數"
from emp e,salgrade s
where sal between s.losal and s.hisal
group by s.grade

–3列出所有員工及直接上級的姓名
-- nvl(null,0) 如果為null 回傳0
select e1.ename,nvl(e2.ename,'沒有上級')
from emp e1,emp e2
where e1.mgr=e2.empno(+)

–4列出受雇日期早于其直接上級的所有員工的編號,姓名,部門名稱
select e.empno, e.ename, d.dname from emp e,emp m ,dept d
where e.hiredate < m.hiredate
and
e.mgr = m.empno
and
e.deptno = d.deptno

–5列出部門名稱和這些部門的員工資訊,同時列出那些沒有員工的部門.
使用右連接 因為要顯示的是部門名稱(同時列出那些沒有員工的部門) 就是現實全部的部門
select d.dname"部門名稱" , e.*
from emp e,dept d
where e.deptno(+)=d.deptno

–6列出至少有一個員工的所有部門
select deptno ,count(ename)
from emp
group by deptno;

–7列出薪金比"SMITH"多的所有員工資訊.
select *
from emp e
where e.sal>
(
select sal
from emp
where ename='SMITH'
)

–8 --列出最低薪金大于1500的各種作業及從事此作業的全部雇員人數
select j.job,c.co
from
(select job
from emp
group by job
having min(sal)>1500)j
,
(select job, count(*) co
from emp
group by job) c
where j.job=c.job

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/107836.html
標籤:其他
下一篇:MySQL初學者的一些筆記
