--因为你题目中没有说清楚列代表的含义,我这里假设sno表示选修编号,cno代表学号
select a.sno,a.cno,a.degree from score a where a.degree > ( select b.degree from score b where b.sno='3-245' and a.cno=b.cno
) and a.sno='3-105'
select * from score where 选修编号="3-105" and 成绩> (select 成绩 from score where 选修编号="3-245")
对楼主的题目有质疑:1.字段不明确不清楚意思 。 2.选修编号是不是唯一这个也不明确,如果不唯一请在后面那个成绩改成 max(成绩) ,表示选修编号="3-245"的最高成绩
select a.*
from score a,score b
where a.sno='3-105'
and b.sno='3-245'
and a.cno=b.cno
and a.degree>b.degree
;