为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle高级查询

//查询结果
select c.ci_id,wm_concat(s.stu_name)
from pm_ci c,pm_stu s
where instr(c.stu_ids,s.stu_id)>0
group by ci_id
//往学生表中插入内容
insert into pm_stu values('1','张三');
insert into pm_stu values('2','李四');
insert into pm_stu values('3','王五');
insert into pm_stu values('4','赵六');

//往选课表中插入内容
insert into pm_ci values('1','1,2,3,4,');
insert into pm_ci values('2','1,4');
//创建学生表
create table pm_stu
(stu_id varchar2(20) not null,
stu_name varchar2(20)
)

//创建选课表
create table pm_ci
(ci_id varchar2(20) not null,
stu_ids varchar2(100)
)
select p.ci_id as CI_ID,wm_concat(s.stu_name) as STU_NAME
from pm_ci p,pm_stu s
where instr(p.stu_ids,s.stu_id)>0
group by p.ci_id
select ci_id,wm_concat(stu_name) stu_name
from (select c.ci_id,s.stu_name
from pm_ci c,pm_stu s
where instr(c.stu_ids,s.stu_id)>0)
group by ci_id
order by ci_id;
他这里说的任意一个是指其中某一个的意思,大家不要误解,我刚百度了,any在这里的用法就是指某一个
这个举例子查询完全查出来了,干嘛还用子查询,一个查询语句就行了!
very good
老师真好,接着学
Oracle 11gR2和12C上已经摒弃了wm_concat函数 QAQ
老师讲的很仔细,赞一个!!!

讲师回答 / 赵强老师
使用管理员的身份运行命令行
select ci_id,wm_concat(stu_name)
FROM (select c.ci_id, s.stu_name
from pm_ci c, pm_stu s
where instr(c.stu_ids,s.stu_id)>0 )t
group by ci_id
课程须知
小伙伴们,学习本课程前需要掌握Oracle的语法基础,并且对Oracle的函数有所了解。如不了解这两部分内容,请移步《Oracle数据库开发必备利器之SQL基础》和《Oracle数据库开发利器之函数》两门教程。
老师告诉你能学到什么?
1、掌握分组查询 2、掌握多表查询 3、掌握子查询

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消