У меня есть один стол: вопросник. он хранит DisciplineId, QuestionID, QuestionText и т.д ...Как получить записи из таблицы в pl/sql?
Теперь мой вопрос:
мне нужно 10 записей конкретного DisciplineId, 20 записей для другого DisciplineId и 30 записей для Someother DisciplineId .... Что я должен для чего? Как я могу включить все заявление и получить только 60 (10 + 20 + 30) строк?
Для одной дисциплины, она работает, как показано ниже:
create or replace function fun_trial(Discipline1,Disc1_NoOfQuestions)
open cur_out for
select getguid() tmp,
QuestionNo,QuestionText,
Option1,Option2,
Option3,Option4,
Correctanswer,Disciplineid
from Questionmaster
where DisciplineId=discipline1
AND rownum <= disc1_NoOfQuestions
order by tmp ;
return (cur_out);
@APC: Nitpick, разве вы не имели в виду dense_rank()? (Для маловероятных случаев равных значений QuestionNo) :-) – Khb
@khb - на самом деле, если бы это была возможность, я бы выбрал 'row_number()', так как я думаю, что это ключ к решению, мы возвращаем точно * 10 * вопросов для дисциплина № 1, * 20 * вопросы для дисциплины № 2 и т. д. – APC