LISTAGG WITHIN GROUP函数使用方法

oracle中将多行共同的合并成一条记录,不同的合并后字符串拼接

select
t1.kcbh 课程编码,
t1.kcmc 课程名称 ,
LISTAGG( t1.JZGMC, ', ') WITHIN GROUP (ORDER BY t1.RKLSBM) AS 教职工信息
from
(
SELECT DISTINCT
a.JZGMC,
cct.kcbh 课程编码,
cct.kcmc 课程名称
-- LISTAGG(a.RKLSBM || ' - ' || a.JZGMC, ', ') WITHIN GROUP (ORDER BY a.RKLSBM) AS 教职工信息
FROM
CB_CBSJ_TJYXJXCB cct
LEFT JOIN CB_JCXX_XLCC cjx ON cct.XLCC = cjx.XLCCBM
AND cct.KJND = cjx.KJND
AND cct.KJQJ = cjx.KJQJ
LEFT JOIN (
SELECT
cjk.KJND,
cjk.KJQJ,
cjk.KCBM,
cjk.RKLSBM,
cjj.SSXYBM,
cjj.JZGMC
FROM
CB_JCXX_KCRJXX cjk
LEFT JOIN CB_JCXX_JZG cjj ON cjk.RKLSBM = cjj.JZGBM
AND cjk.KJND = cjj.KJND
AND cjk.KJQJ = cjj.KJQJ
) a ON cct.kcbm = a.KCBM
AND cct.KJND = a.KJND
AND cct.KJQJ = a.KJQJ
WHERE
cct.kjnd = 2021
AND cct.kjqj = 1
AND cct.lx = 2
AND cct.kcbh = '15'
GROUP BY
a.JZGMC,
cct.kcbh,
cct.kcmc;
) t1
GROUP BY t1.kcbh,t1.kcmc;
posted @   这都没什么  阅读(160)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示