我有一個存儲過程,它返回一個遊標。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