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

Oracle高级查询

最新回答 / 慕田峪9362115
现在的高级程序员都喜欢用命令行的方式写代码。。。
select t.ci_id, (select wm_concat(STU_NAME) from PM_STU t1
where instr(STU_IDS,t1.stu_id)>0) STU_NAME from PM_CI t
--答案
select c.ci_id,wm_concat(s.stu_name)
from pm_ci c left join pm_stu s on
instr(c.stu_ids,s.stu_id)>0 group by c.ci_id;
--插入表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)
);

已采纳回答 / Amousy
<...code...>用distinct可以找到不重复记录,
select distinct mgr from emp where mgr is not null;
上面这条语句的功能可以找到所有老板。很明显King(7839)是包括在里面的,为什么select * from e...
select 课程名, wm_concat(学生姓名|| &#039;、&#039;) 选课学生 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;

最新回答 / 慕运维7099135
为啥我用这个会报错呢?listagg是个什么函数,没看懂

最赞回答 / puikiri
就近原则,如果子查询内有符合 ‘emp’ 的 表/集合,就采用子查询内的,所以第二条语句的emp.deptno用的是子查询内的而不是子查询外的。
和雷军声音特点好像啊哈哈哈哈
课程须知
小伙伴们,学习本课程前需要掌握Oracle的语法基础,并且对Oracle的函数有所了解。如不了解这两部分内容,请移步《Oracle数据库开发必备利器之SQL基础》和《Oracle数据库开发利器之函数》两门教程。
老师告诉你能学到什么?
1、掌握分组查询 2、掌握多表查询 3、掌握子查询

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消