首页 > 代码库 > oralce之复杂查询举例
oralce之复杂查询举例
表结构:
S(SNO,SNAME) 代表 学号。学生姓名;
C(CNO,CNAME,CTEACHER) 代表 课号,课程名称。授课老师
SC(SNO,CNO,SCGRADE) 代表 学号。课号。课程成绩
1 查询没选过“黎明”老师的全部学生姓名。
select s.sname from s join sc on sc.sno=s.sno join c on c.cno=s.cno where c.cteacher<>'黎明'
2 查询出2门以上(包括2门)不及格学生的姓名及平均成绩。
select s.sname,c.a_grade from (select a.sno,count(cno) from (select sno,cno from sc where sc.scgrade<60) group by a.sno having count(cno)>1)b join s on b.sno=s.sno join (select avg(scgrade) a_grade,sno from sc group by sno)c on c.sno=s.sno
3 既学过1号课程又学过2号课程的学生姓名;
select s.sname from s join (select count(*),sno from (select * from sc where sc.cno in(1,2)) grout by sno having cout(*)>1)a on a.sno=s.sno
oralce之复杂查询举例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。