--如果不算奖金就自已去掉 select e.ename 员工姓名,m.ename 领导姓名,(m.sal+nvl(m.comm,0))*12 领导年薪 from emp e left join emp m on e.mgr=m.empno order by 领导年薪 desc; /*员工姓名 领导姓名 领导年薪 -------------------- -------------------- ---------- King Jones King 60000 Blake King 60000 Clark King 60000 Adams Scott 36000 Smith Ford 36000 Ford Jones 35700 Scott Jones 35700 Ward Blake 34200 Martin Blake 34200 Turner Blake 34200 James Blake 34200 Allen Blake 34200 Miller Clark 29400 已选择14行。 */
--如果要把空的排在后,加个nulls last就可以了 select e.ename 员工姓名,m.ename 领导姓名,(m.sal+nvl(m.comm,0))*12 领导年薪 from emp e left join emp m on e.mgr=m.empno order by 领导年薪 desc nulls last; /* 员工姓名 领导姓名 领导年薪 -------------------- -------------------- ---------- Blake King 60000 Clark King 60000 Jones King 60000 Adams Scott 36000 Smith Ford 36000 Ford Jones 35700 Scott Jones 35700 Ward Blake 34200 Martin Blake 34200 Turner Blake 34200 James Blake 34200 Allen Blake 34200 Miller Clark 29400 King 已选择14行。 */
--如果不算奖金就自已去掉
select e.ename 员工姓名,m.ename 领导姓名,(m.sal+nvl(m.comm,0))*12 领导年薪
from emp e
left join emp m on e.mgr=m.empno
order by 领导年薪 desc;
/*员工姓名 领导姓名 领导年薪
-------------------- -------------------- ----------
King
Jones King 60000
Blake King 60000
Clark King 60000
Adams Scott 36000
Smith Ford 36000
Ford Jones 35700
Scott Jones 35700
Ward Blake 34200
Martin Blake 34200
Turner Blake 34200
James Blake 34200
Allen Blake 34200
Miller Clark 29400 已选择14行。
*/
--如果要把空的排在后,加个nulls last就可以了
select e.ename 员工姓名,m.ename 领导姓名,(m.sal+nvl(m.comm,0))*12 领导年薪
from emp e
left join emp m on e.mgr=m.empno
order by 领导年薪 desc
nulls last;
/*
员工姓名 领导姓名 领导年薪
-------------------- -------------------- ----------
Blake King 60000
Clark King 60000
Jones King 60000
Adams Scott 36000
Smith Ford 36000
Ford Jones 35700
Scott Jones 35700
Ward Blake 34200
Martin Blake 34200
Turner Blake 34200
James Blake 34200
Allen Blake 34200
Miller Clark 29400
King 已选择14行。
*/