Этот вопрос звучит так, как будто он из студента, выполняющего задание!В любом случае, некоторые Oracle SQL могут быть полезны следующим образом.
SELECT STUDENT_NAME, STUDENT_GRADE
FROM (
SELECT S.NAME AS "STUDENT_NAME", G.GRADE AS "STUDENT_GRADE"
FROM STUDENTS S JOIN GRADES G USING (STUDENT_ID)
WHERE S.SEX='m'
ORDER BY 2
)
WHERE ROWNUM < 4;
Oracle в более поздних версиях:
SELECT S.NAME AS "STUDENT_NAME", G.GRADE AS "STUDENT_GRADE"
FROM STUDENTS S JOIN GRADES G USING (STUDENT_ID)
WHERE S.SEX='m'
ORDER BY 2
FETCH FIRST 3 ROWS ONLY;