首页 >数据库 >mysql教程 > 正文

oracle 面试题下 (七) rownum的运用

原创2020-08-01 17:28:160206

1 求经理人平均薪水最低的部门名称: select dname from dept where deptno = ( select deptno from ( select deptno,avg(sal)avg_sal from ( select e1.sal, e1.deptno,e2.mgr from emp e1 join emp e2 on (e1.empno=e2.mgr) ) group by deptno ) where avg_

1 求经理人平均薪水最低的部门名称:

select dname from dept where deptno =
(
select deptno from
(
select deptno,avg(sal)avg_sal from
(
select e1.sal, e1.deptno,e2.mgr from emp e1 join emp e2 on (e1.empno=e2.mgr)
) group by deptno
) where avg_sal =
(
select min(avg_sal) from
(
select deptno,avg(sal)avg_sal from
(
select e1.sal, e1.deptno,e2.mgr from emp e1 join emp e2 on (e1.empno=e2.mgr)
) group by deptno
)
)
)

2 比普通员工的最高薪水还高的经理人名称

select ename from emp
where empno in (select distinct mgr from emp where mgr is not null) and sal >
(
select max(sal) from emp where empno not in
(select distinct mgr from emp where mgr is not null)
)

其中(select distinct mgr from emp where mgr is not null) 注意空值的处理.

3 求薪水最高的前五雇员

* 关于隐藏属性 rownum :

rownum 从1开始,每行递增 . 如查询表中的前五人:

select ename from emp where rownum < = 5;

注意oracle 中 rownum 不可直接与> , = 连用, 如:select ename from emp where rownum >10;

当需要查找r>10时必须使用子查询:

select ename from (select ename ,rownum r from emp)where r >10;

以上.

求薪水最高的前五人:

select ename ,sal from
( select ename ,sal from emp order by sal desc )
where rownum<=5;

4 求薪水最高的第六个人到第十个人

select ename,sal from
(
select ename ,sal ,rownum r from
(
select ename ,sal from emp order by sal desc
)
)where r>=6 and r <=10

为什么不能 select ename ,sal from

(select ename,sal ,rownum r from emp order by sal desc)

where r >=6 and r <=10 这样写呢?

因为 (select ename,sal ,rownum r from emp order by sal desc) 这句话先取了emp的 rownum 然后再按sal 倒排, 无法达到取 sal 6到10名的效果.

【专题推荐】:2020年oracle面试题汇总(最新)

php中文网最新课程二维码
  • 相关标签:oracle面试题 rownum 运用
  • 本文原创发布php中文网,转载请注明出处,感谢您的尊重!
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 本文来自java,文中为大家分享了spring相关,希望可以帮助到大家。

    专题推荐

    作者信息

    钟老师

    有偿投稿用户

    最近文章
    Web 开发里程碑时刻:Bootstrap 宣布放弃支持 IE457
    推荐视频教程
  • 燕十八Oracle视频教程燕十八Oracle视频教程
  • oracle知识库oracle知识库
  • 肖文吉Oracle视频教程肖文吉Oracle视频教程
  • 魔乐科技oracle视频教程魔乐科技oracle视频教程
  • 尚观Oracle入门到精通视频教程尚观Oracle入门到精通视频教程
  • oracle基础视频教程oracle基础视频教程
  • 视频教程分类