DB
[ORACLE]LISTAGG 함수, ONE TO MANY, SINGLE ROW로 보여주기
까오기
2020. 4. 3. 14:29
오라클을 사용하고 ONE TO MANY 관계인 테이블들을 조인해서 하나의 ROW로 보여 줄 때 편리한 함수입니다.
Syntax
LISTAGG(<expression>, <seperator>) WITHIN GROUP(ORDER BY ...)
Example
select
s.student_id
, s.student_nm
, LISTAGG(b.subject, ',') WITHIN GROUP (ORDER BY b.subject) subjects
from student s
join subject b on s.student_id = b.student_id
where student_id = '1234'
group by s.student_id, s.student_nm
order by s.student_id
one-to-many 관계인데 하나의 row로 뽑아 달라는 요청이 많은데 그럴 때 유용하게 쓸 수 있습니다.