练习题答案以及一些疑问

来源:5-5 练习

_边城浪子

2020-12-25 15:07

代码一:

select c.ci_id, wm_concat(s.stu_name) stu_ids
from pm_ci c, pm_stu s
where instr(c.stu_ids, s.stu_id) > 0
group by c.ci_id;

代码实现结果如下:

http://img2.mukewang.com/5fe58eda0001f04703900104.jpg

发现和视频结果不一样,没有按序号顺序输入,可能是因为wm_concat()没有排序功能?这点不清楚,请大佬指教!!


利用listagg()代替wm_concat()就可以输出正确结果了。

代码二:

select c.ci_id, listagg(s.stu_name, ',') within group (order by s.stu_id) stu_ids
from pm_ci c, pm_stu s
where instr(c.stu_ids, s.stu_id) > 0
group by c.ci_id;

结果如下:

http://img4.mukewang.com/5fe58f9a0001c3b603550098.jpg

写回答 关注

2回答

Oracle高级查询

数据库开发中应用广泛的高级查询,本教程通过大量的案例详细讲解

62883 学习 · 144 问题

查看课程

相似问题