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

 

다음과 같은 결과를 낼 수 있습니다.