日期:2014-05-17  浏览次数:20820 次

oracle的sql语句问题
如何查询一张表的各个部门人的前两位;
如:
  sid name deptno sid name deptno
  101 张三 1001 101 张三 1001
  102 李四 1002 103 aa 1001
  103 aa 1001 结果: 102 李四 1002
  104 bb 1001 105 cc 1002
  105 cc 1002 106 dd 1003
  106 dd 1003 108 rr 1003
  107 ee 1002 .
  108 rr 1003 .
  .
  .

如何用一条sql语句实现?
各位高手帮帮忙!

------解决方案--------------------
SQL code

select sid,name,deptno from (select row_number() over(partition by deptno order by sid)rn,sid,name,deptno from 你的表) where rn<3;

------解决方案--------------------
探讨
SQL code


select sid,name,deptno from (select row_number() over(partition by deptno order by sid)rn,sid,name,deptno from 你的表) where rn<3;