我有2个Oracle(Oracle 12)表
StudentTable
s_id number
s_name varchar
Data in Table --> 1 Joe
ClassTable
c_student_id number
c_className varchar
Data in table --> 1 Math
1 History
1 Sceince
我想写一个查询,它将占用3行并将其转换为1个逗号分隔列。
我希望我的输出如下所示:
Joe Math, History, Science
有没有办法创建此查询?
答案 0 :(得分:3)
SELECT MAX( s_name ) KEEP ( DENSE_RANK FIRST ORDER BY s.s_id ) AS name,
LISTAGG( c_class_name, ', ' ) WITHIN GROUP ( ORDER BY ROWNUM ) AS classes
FROM Students s
INNER JOIN
Classes c
ON ( s.s_id = c.c_student_id )
GROUP BY s.s_id;