当前位置: 代码迷 >> Oracle开发 >> pl sql 小查询,路过的不要错过了,该怎么解决
  详细解决方案

pl sql 小查询,路过的不要错过了,该怎么解决

热度:70   发布时间:2016-04-24 07:54:56.0
pl sql 小查询,路过的不要错过了
con_id,prod_id
1                   2001
1                   2002
1                   2003
1                   2004
2                   2005
2                   2006
2                   2007
2                   2008
.
.
.

要求是每个con_id   取出任意N个prod_id(已3为例)
要求结果如下:
con_id,prod_id
1                   2001
1                   2002
1                   2003
2                   2005
2                   2006
2                   2007
.
.
.
.
.

3QQ!!!


------解决方案--------------------
使用分析函数应该行的:
SELECT * FROM
(
SELECT con_id,prod_id,ROW_NUMBER() OVER (PARTITION BY con_id ORDER BY prod_id) rn FROM table1
) a
where a.rn <4
------解决方案--------------------
楼上的方法最简单!!
如果是我,估计要写存储过程,用游标取数据了!!
  相关解决方案