这是我做的实验,思路是,只要过滤掉那些成绩表中成绩为空的学生、有成绩小于90分的学生,剩下的就是成绩都大于等于90分的学生:
SELECT SNAME, STU.SNO
FROM STUDENT STU
WHERE NOT EXISTS (SELECT SNO
FROM SCORE SC
WHERE SC.SNO = STU.SNO
AND (SC.GRADE < 90 OR SC.GRADE IS NULL));
这道题可以这样理解,即学生的最低成绩大于90,所以代码可以写为:
select Sno,Sname from SC group by Sno having min(Grade)>90;
成绩一般会在考试结束后13左右公布,
各地的时间会有所差别,
具体信息多关注本地的教育信息网和学校的通知!
select a.name,a.st_number from student as a
inner join sle_course as b on(a.st_number=b.st_number)
where b.score>=90
select student.sno ,sname from student ,sc where student.sno =sc .sno and student.sno not in (select sno from sc where grade is null) group by sno having min(grade) >=90;
这是全部代码,确定要查询的是student表的sno ,当一个查询涉及数据库中的多个表时,一般要按照一定的条件把这些表连接在一起,通过=好进行等值连接,连接完毕后,我们知道,集函数min忽略空值,如果某个学生的其他成绩都大于等于90,而有一门没成绩,这个学生到底符合不符合,实际上成绩有一门为空值的学生是不符合这个条件的,所以执行语句排除成绩有空值的学生,然后通过sno 分组 ,学生每门课成绩的最小值为90 ,则为优秀。