Oracle面试题整理二(10级学员 乔宇整理)
1.查询工资最高的3 名员工信息
select * from (select * from emp order by sal desc) where rownum <= 3;
分析我们先按照这个表中的工资降序排列,然后使用伪列也就是这个rownum来取前三个
2. 按工资进行排名,排名从1 开始,工资相同排名相同(如果两人并列第1 则没有第2 名,从第
三名继续排)
select rank() over(order by sal) from emp;
分析,其中用到一个rank() over的函数,自己在网上查一下就知道了,很简单的!
3. 求入职日期相同的(年月日相同)的员工
select * from emp e where (select count(*) from emp where e.hiredate=hiredate)>1;
4. 查询每个部门的最高工资
select deptno,max(sal) maxsal from emp group by deptno order by deptno;
分析这个没有什么要说的了,只要会分组就会了
5. 查询每个部门,每种职位的最高工资
分析这个和18一样的了
6. 查询每个员工的信息及工资级别(用到表Salgrade)
select * from salgrade;
select e.*,sg.grade from emp e,salgrade sg where sal between losal and hisal;
这个题目就是考察你的基础呢?呵呵很简单的
7. 查询工资最高的第6-10 名员工
select * from (
(select * from emp order by sal