[Oracle] 조회 결과 Row를 하나의 Column으로 표시하는 방법

2016. 4. 7. 15:50plming/DB

[Oracle] 조회 결과 Row를 하나의 Column으로 표시하는 방법

 

종[縱]으로 된 결과를 횡[橫]으로 표시

세로로 된 결과를 가로로 표시

 

 

 

 SELECT 'A' AS COL_NAME
         , LEVEL AS LV_NO
 FROM   DUAL
 CONNECT BY LEVEL <= 3

 ;

 

 

위 SQL을 실행하면, 아래 처럼 조회된다.

 

 COL_NAME     LV_NO
 ========    =====
 A                  1
 A                  2
 A                  3

 

 

위의 결과를 아래처럼 조회하기 위해서는

 

 COL_NAME     LV_NOS
 ========    ======
 A                  1,2,3

 

요론 SQL을 사용하면 된다.

 

 SELECT COL_NAME
         , SUBSTR(XMLAGG(XMLELEMENT(COL ,',', LV_NO) ORDER BY LV_NO).EXTRACT('//text()').GETSTRINGVAL(), 2) AS LV_NOS
 FROM ( SELECT 'A' AS COL_NAME
                    , LEVEL AS LV_NO
            FROM   DUAL
            CONNECT BY LEVEL <= 3
 )
 GROUP BY COL_NAME
 ;

 

ORDER BY는 원하는 순서대로 조절하면 된다.

 

 

'plming > DB' 카테고리의 다른 글

[Oracle] SQLException: 소켓에서 읽을 데이터가 없습니다  (3) 2016.04.18
[Oracle] WITH(Temp Table) 2개 사용하기?  (1) 2016.04.07
Oracle - 월 달력 SQL  (0) 2015.12.03
MySQL - 한글사용  (0) 2015.09.02
Oracle VS MySQL  (0) 2015.09.02