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

Oracle高级查询

--插入表pm_stu数据
insert into pm_stu (STU_ID, STU_NAME)
values ('1', '张三');
insert into pm_stu (STU_ID, STU_NAME)
values ('2', '李四');
insert into pm_stu (STU_ID, STU_NAME)
values ('3', '王五');
insert into pm_stu (STU_ID, STU_NAME)
values ('4', '赵六');
--插入表pm_ci数据
insert into pm_ci (CI_ID, STU_IDS)
values ('1', '1,2,3,4');
insert into pm_ci (CI_ID, STU_IDS)
values ('2', '1,4');
--建表语句
create table pm_ci
(
ci_id VARCHAR2(20) not null,
stu_ids VARCHAR2(100)
);
create table pm_stu
(
stu_id VARCHAR2(20) not null,
stu_name VARCHAR2(100)
);
select 课程名, wm_concat(学生姓名|| '、') 选课学生 from
(select * from
(select c.ci_id 课程名, s.stu_name 学生姓名,
instr(c.stu_ids, s.stu_id) choose
from pm_ci, pm_stu s
where instr(c.ci_id, s.stu_name) is not null)
where choose=1) group by 课程名;
select a.CI_ID,to_char(
(select wm_concat(decode(instr(a.stu_ids,b.stu_id),0,null,b.stu_name))
from pm_stu b
)
) STU_NAME
from pm_ci a where a.ci_id is not null;
select a.CI_ID,to_char(
(select wm_concat(decode(instr(a.stu_ids,b.stu_id),0,null,b.stu_name))
from pm_stu b
)
) STU_NAME
from pm_ci a;
哇,是我老师,怪不得听着声音那么熟~
和雷军声音特点好像啊哈哈哈哈
select b1.cid,wm_concat(b1.sname) from
(select c.ci_id cid,s.stu_name sname,instr(c.stu_ids,s.stu_id)
from pm_ci c,pm_stu s where instr(c.stu_ids,s.stu_id)<>0) b1 group by b1.cid;
select p.ci_id,max(stu_name) as STU_NAME
from (select c.ci_id,wm_concat(s.stu_name)
over(partition BY c.stu_ids order by s.stu_id) as stu_name
from pm_ci c,pm_stu s
where instr(c.stu_ids,s.stu_id) > 0) p
group by p.ci_id;
plsql :set page size 首个标题占四行,其余占三行
set page size 标题占三行,看着是两行的啊
前面的肯定简单,加速看不就好了,就当复习,需要很多时间吗
觉得不高级你还看什么?
下面的评论还是2016,有没有2018的小伙伴,点个赞
课程须知
小伙伴们,学习本课程前需要掌握Oracle的语法基础,并且对Oracle的函数有所了解。如不了解这两部分内容,请移步《Oracle数据库开发必备利器之SQL基础》和《Oracle数据库开发利器之函数》两门教程。
老师告诉你能学到什么?
1、掌握分组查询 2、掌握多表查询 3、掌握子查询

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消