sql

여러row 한 컬럼에 넣기

초이짬 2013. 11. 27. 10:57
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