oracle的sql语句问题

kai1989keji 2012-09-15 10:19:05
如何查询一张表的各个部门人的前两位;
如:
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语句实现?
各位高手帮帮忙!
...全文
84 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzhe527843733 2012-09-17
  • 打赏
  • 举报
回复

RANK() OVER(PARTITION BY COLUMNNAME ORDER BY COLUMNAME)

ROW_NUMBER() OVER(PARTITION BY COLUMNNAME ORDER BY COLUMNAME)
陈字文 2012-09-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
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;
[/Quote]

++
注意结贴哦
人生无悔 2012-09-15
  • 打赏
  • 举报
回复

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

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧