我有一个存储过程,它返回一个游标。Oracle Pl/sql从多个查询中返回一个游标
应用程序将一个参数传递给确定应该提取多少个ID的过程,因此该过程不知道该数字的时间头。
foreach ID我需要获取带有该ID的前3条记录。 我曾尝试使用:
select * from table_name where id in (List of ID`s);
该查询工作,但我不能让每个ID的前3名。如果我限制结果数量,我会得到第一个ID的TOP结果。
我以为使用For循环,执行每个ID的查询并追加结果到游标,但据我所知它是不可能的。
任何想法?
更多细节 可以说我有5个ID s and each of them have inner Id
S左右 编号1具有(1,2,3,4,5)编号2(1,2,3,4,5)ID 3 (12,14,15,16,22)Id 4(2,3,5,7,9)Id 5(4,7,8,9,10) 在这种情况下,我正在处理的情况,我没有看到行号如何帮助我。 我需要每个ID的前3位,在这种情况下,光标应该有15个结果。
10倍了很多,有一个美好的周末;)
我有一种方法可以确定ID的每个od的前3位。 – 2010-11-27 18:03:42
@Udi l:这就是分析/排名/窗口函数的`PARTITION BY id`部分所做的(在这种情况下是ROW_NUMBER)。 – 2010-11-27 18:11:25