STRING_AGG () / LISTAGG () / GROUP_CONCAT()
나같은 경우 상담 내역 관리에서 그룹면담 출력물을 뽑을 떄
한개의 상담에 학생정보가 여러개여서 이용함.
mssql의 경우
SELECT
main_table.id,
(
SELECT STRING_AGG(sub_table.value, ', ')
FROM sub_table
WHERE sub_table.id = main_table.id
) AS aggregated_values
FROM
main_table;
main_table은 메인 쿼리의 테이블이고, sub_table은 서브쿼리의 테이블입니다.
STRING_AGG() 함수는 서브쿼리의 결과를 ','로 구분한 문자열로 합칩니다.
오라클은 LISTAGG 사용방법은 같습니다
mysql의 경우
SELECT
main_table.id,
GROUP_CONCAT(sub_table.value SEPARATOR ', ') AS aggregated_values
FROM
main_table
JOIN
sub_table ON main_table.id = sub_table.id
GROUP BY
main_table.id;
GROUP_CONCAT() 함수는 서브쿼리의 결과를 ','로 구분한 문자열로 결합합니다. SEPARATOR ', ' 부분은 각 값 사이에 넣을 구분자를 지정합니다.
'DB 지식' 카테고리의 다른 글
[mysql/mssql/Oracle] CONCAT 함수,||사용 문자열 합치기 (0) | 2024.09.19 |
---|---|
order by 했는데도 1다음에 10이 오는 건 (0) | 2024.04.16 |
[SQL] ALIAS 로 칼럼 별칭 설정 (0) | 2024.01.24 |