728x90
*bbs_cd = 키값
*user_id = 한칼럼에 들어갈 값
SELECT bbs_cd, SUBSTR (MAX (SYS_CONNECT_BY_PATH (user_id, ',')), 2) user_id
FROM (SELECT user_id, bbs_cd,
ROW_NUMBER () OVER (PARTITION BY bbs_cd ORDER BY user_id) rnum
FROM sjtc_bbs_auty)
START WITH rnum = 1
CONNECT BY PRIOR rnum = rnum - 1 AND PRIOR bbs_cd = bbs_cd
GROUP BY bbs_cd
오라클 에서는 xml 함수를 사용해서 더 편하게 표현 할 수 있다.
xmlagg(xmlelement(a,',' || val) order by val).extract('//text()')
xml 형 데이터를 String 형으로 변환시
뒤에 가볍게
.getStringVal()
혹은
xmlagg(xmlelement(a,',' || val) order by val).extract('//text()').etStringVal()
[출처] [오라클] 여러로우의 값을 하나의 컬럼으로 바꾸는 방법|작성자 해리
728x90
'sql' 카테고리의 다른 글
오라클 특정 컬럼 순서 매기기 ROW_NUMER()OVER(PARTITION) (0) | 2014.03.25 |
---|---|
오라클 여러row 한 컬럼에 넣기2 (0) | 2014.03.19 |
오라클 db 링크 테이블 복사 (0) | 2013.03.29 |
오라클 삭제된 테이블 복원 (0) | 2013.03.29 |
오라클 문자 분리 (0) | 2013.03.29 |