SELECT * FROM (SELECT a.年级id,b.班级id,a.评分id,row_number() OVER(PARTITION BY a.评分id ORDER BY a.评分id) rn FROM 年级表 a,班级表 b WHERE a.年级id=b.年级id(+)) WHERE rn<=10;

解决方案 »

  1.   

    你的意思是<=10条记录,还是10个年级额,如果是10个年级:select t4.pfid, t4.njid, t3.bjid
      from (select t2.*, row_number() over(partition by pfid order by njid) rnn
              from (select nj.pfid, bj.njid
                      from nj
                      left join bj
                        on nj.njid = bj.njid
                     group by nj.pfid, bj.njid) t2) t4,
           bj t3
     where t4.njid = t3.njid
       and t4.rnn <= 10
     order by t4.pfid, t4.njid, t3.bjid