DataBase/Oracle SQL
다중로우 한줄로, 배열로 만들기
햄볶는뚱땡이
2012. 7. 30. 14:56
단순쿼리로 다음과 같이 데이터가 나온 경우
EX>> SELECT WKGD_NM , APPR_GRP_NM FROM 테이블명
하나의 로우로 만들어 주고자 하는 경우에는 당신이 쓰고 있는 DBMS 의 종류가 ORACLE 10g 인 경우 이렇게 사용 하세요.
SUBSTR(XMLAGG(XMLELEMENT(X,',' 컬럼) ORDER BY 오더바이 할 컬럼).EXTRACT('//text()') ,2) AS 정하고자 하는 이름
검은색은 알맞은 컬럼은 채워 넣으셔요~
결과 예 >>
SELECT
SUBSTR(XMLAGG(
XMLELEMENT( X, ',' , A.WKGD_NM ) ORDER BY A.WKGD_CD).EXTRACT('//text()'),2) AS WKGD_NM ,
SUBSTR(XMLAGG(
XMLELEMENT( X, ',' , A.APPR_GRP_NM ) ORDER BY A.WKGD_CD).EXTRACT('//text()'),2) AS APPR_GRP_NM
FROM DAUL A
다음과 같은 결과를 낼 수 있습니다.