Как фильтровать по набору значений идентификаторов без использования подзапроса - PullRequest
0 голосов
/ 15 октября 2018

Мне было интересно, если кто-то может мне помочь, мне нужно показать это в оракуле.

Для этого я использую этот выбор:

SELECT m.idMedicamento, m.nombre, m.precio
FROM medicamento m
WHERE m.idMedicamento IN (
        SELECT idMedicamento 
        FROM (
            SELECT idMedicamento
            FROM medicamento
            ORDER BY precio ASC)
        WHERE ROWNUM <=3
    )
    OR m.idMedicamento IN (
        SELECT idMedicamento 
        FROM (
            SELECT idMedicamento
            FROM medicamento
            ORDER BY precio DESC)
        WHERE ROWNUM <=3    
    )
ORDER BY m.precio DESC;

нопроблема в том, что я не могу использовать подвыборы, мне нужно использовать функции или процедуры, и я подумал в этой функции:

CREATE OR REPLACE FUNCTION MAXI RETURN FLOAT IS
total INT := 0;
CURSOR ANIO IS
    SELECT idMedicamento
    FROM medicamento
    ORDER BY precio DESC;
a anio%ROWTYPE;
BEGIN
OPEN ANIO;
LOOP
    FETCH ANIO INTO a;
    EXIT WHEN ANIO%NOTFOUND;

END LOOP;
CLOSE ANIO;
RETURN ROUND(a ,2);
END;

Это функция только для возврата максимума, но я не могу вернутькурсор.Я не знаю, понимаете ли вы меня, спасибо за ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...