日期:2014-05-16 浏览次数:21191 次
--如果不算奖金就自已去掉 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行。 */