首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将名称一起分组到同一模块组中

将名称一起分组到同一模块组中
EN

Stack Overflow用户
提问于 2020-11-02 23:04:00
回答 1查看 39关注 0票数 0

我有一个PLSQL过程,通过它我从两个表中获取数据,并列出模块代码、姓名和正在接受模块的学生姓名。但是,我有一个问题,因为我现在的输出是这样的

代码语言:javascript
复制
BE1301 Business Analytics: Robert
CIST2013 Data Fundamentals: Henry
BE1301 Business Analytics: Betty
LS1101 Communication and skills: Aron

然而,我希望它是这样的

代码语言:javascript
复制
BE1301 Business Analytics: Robert, Betty
CIST2013 Data Fundamentals: Henry
LS1101 Communication and skills: Aron

下面是我的输出的过程select语句

代码语言:javascript
复制
create or replace procedure module groups is
modulegrp module.m#%type := -1;
 begin
  for cRow IN ( select m#,mname,studname,
                      from module left outer join student
                      on module.class = student.class
                      order by name DESC )
                      loop 
  if cRow.c_custkey is not null then
                     dbms_output.put_line(cRow.M# || cRow.mname || ':' | cRow.studname);
  end if;
  end loop;
  end;
  /
EN

回答 1

Stack Overflow用户

发布于 2020-11-02 23:12:52

您可以在Oracle中使用group by和ListAgg聚合函数:

代码语言:javascript
复制
select m#,mname,LISTAGG(studname, ',') WITHIN GROUP (ORDER BY studname) as names 
from module 
left outer join student
    on module.class = student.class
group by m#,mname
order by name DESC 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64648014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档