问答详情
源自:5-5 练习

练习题答案以及一些疑问

代码一:

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

提问者:_边城浪子 2020-12-25 15:07

个回答