응용 프로그램을 개발 할 때 여러건의 정보를 한건으로 조회하여야 하는 경우가 있다.
아래의 내용은 여러건의 코드정보를 한건으로 보여주는 예제이다.
○ 테스트용 테이블 생성
create table t_code(group_id varchar(10), code_id varchar(10), code_nm varchar(60));
INSERT INTO t_code VALUES ('01','01','서울');
INSERT INTO t_code VALUES ('01','02','부산');
INSERT INTO t_code VALUES ('01','03','대전');
INSERT INTO t_code VALUES ('01','04','인천');
INSERT INTO t_code VALUES ('01','05','광주');
INSERT INTO t_code VALUES ('01','06','경기');
○ 샘플 쿼리
SELECT group_id
, MAX(SYS_CONNECT_BY_PATH(code_nm, ',')) AS code_nm
FROM (SELECT 1 AS A, group_id, code_id, code_nm, rownum-1 AS RNUM
FROM t_code
) T(A, group_id, code_id, code_nm, runum )
START WITH code_id = '01'
CONNECT BY PRIOR runum=runum-1 AND prior A = A
GROUP BY group_id;
○ 조회결과
=== <Result of SELECT Command in Line 3> ===
group_id code_nm
============================================
'01' ,서울,부산,대전,인천,광주,경기
1 rows selected.
이렇게 쓰시는게 나을것 같습니다.
select group_id , GROUP_CONCAT( code_nm SEPARATOR ',') from t_code group by group_id
수고하세요