显示各部门员工薪金最高的前2名
select * from emp a where (select count(*) from emp where deptno = a.deptno and sal > a.sal) < 2
order by deptno,sal desc;
这是什么意思谁能解释一下
显示各部门员工薪金最高的前2名
select * from emp a where (select count(*) from emp where deptno = a.deptno and sal > a.sal) < 2
order by deptno,sal desc;
这是什么意思谁能解释一下
where 后面的意思是同部门,薪金大于本条记录的个数。可以先把它看成一列,如果是0那么是最高的,如果是1那么比他薪金高的就一条记录,那么他就是第二高。