1.有两个表:学生表student 选课表course
2.student表三个字段:sid sname ssex adress
3.course表四个字段:cid cname sid grade
4.两个表关联:course表的sid与student的sid相关联
5.初始化数据:
student:01 zhang m 统一路
02 wang m 八一路course: 01 足球 01 80
02 篮球 01 70
03 数学 01 60
04 数学 02 90
05 足球 02 506.要求得到结果:如果学生选择篮球,得到学生的基本信息和篮球课成绩;
如果学生没有选择篮球,得到学生的基本信息,将成绩字段设置为0
即:sid sname ssex adress grade
结果1 01 zhang m 统一路 70
结果2 02 wang m 八一路 0
2.student表三个字段:sid sname ssex adress
3.course表四个字段:cid cname sid grade
4.两个表关联:course表的sid与student的sid相关联
5.初始化数据:
student:01 zhang m 统一路
02 wang m 八一路course: 01 足球 01 80
02 篮球 01 70
03 数学 01 60
04 数学 02 90
05 足球 02 506.要求得到结果:如果学生选择篮球,得到学生的基本信息和篮球课成绩;
如果学生没有选择篮球,得到学生的基本信息,将成绩字段设置为0
即:sid sname ssex adress grade
结果1 01 zhang m 统一路 70
结果2 02 wang m 八一路 0
解决方案 »
- 由于密码过期,如何更改dblink中配置过的密码?
- spool自动转码问题
- 配置ASM时,出现以下报错Marking disk "VOL1" as an ASM disk:[FAILED]
- select all 效率问题
- 存储过程里VARCHAR2为何只用到1000呢?
- 关于Oracle的tns登录的问题
- 请问一下Count(1)和Count(*)的区别
- 请问10g是不是包含9i的全部功能呢?
- 往Oracle数据库中灌数据,可不可以不写日志?主要为了提高灌入的速度
- orcale817初级问题,问题不好表达,做在图片上了:http://www21.brinkster.com/zhaocool999/thanks.jpg
- Oracle触发器创建表提示权限不足
- 能否在删除数据时使用casade关键字?
FROM STUDENT S,(SELECT CNAME FROM COURSE GROUP BY CNAME) C) T
LEFT JOIN COURSE C1 ON T.SID = C1.SID AND T.CNAME = C1.CNAME
a.*,
nvl(b.grade,0) as grade
from student a
left join course b on a.sid = b.sid and b.cname = '篮球'
create table c(cid varchar2(10),cname varchar2(10),sid varchar2(10),grade varchar2(10));
insert into s values('01', 'zhang', 'm', '统一路' );
insert into s values ('02', 'wang', 'm', '八一路');
insert into c values ('01', '足球', '01', '80');
insert into c values ('02', '篮球', '01', '70');
insert into c values ('03', '数学', '01', '60');
insert into c values ('04', '数学', '02', '90');
insert into c values ('05', '足球', '02', '50');
commit;select s.sid,
s.sname,
s.ssex,
s.adress,
sum(to_number(case
when c.cname = '篮球' then
c.grade
else
'0'
end)) lq_grade
from s, c
where s.sid = c.sid
group by s.sid, s.sname, s.ssex, s.adress
from student t1
left join curse t2 on t1.sid = t2.sid
and t2.cname = '篮球'
select t1.sid, t1.sname, t1.ssex, t1.adress, nvl(t2.grade, 0)
from student t1, curse t2
where t1.sid = t2.sid(+)
and t2.cname(+) = '篮球'
from student t1, curse t2
where t1.sid = t2.sid(+)
and t2.cname(+) = '篮球'