728x90
반응형
기존에 세로로 나온 DATA를 가로로 바꿀때에는 쿼리가 복잡했었지만 오라클 11g에서는 LISTAGG라는 함수를 사용해서 간단하게 만들수 있다.
WITH RGN AS
(SELECT RGN_CD
FROM
(SELECT 'A' AS RGN_CD
FROM DUAL
UNION
SELECT 'B' AS RGN_CD
FROM DUAL
UNION
SELECT 'C' AS RGN_CD
FROM DUAL
UNION
SELECT 'D' AS RGN_CD
FROM DUAL
UNION
SELECT 'E' AS RGN_CD
FROM DUAL
)
)
SELECT LISTAGG(RGN_CD, ',') WITHIN GROUP (ORDER BY RGN_CD)AS RGN_CD
FROM RGN
(SELECT RGN_CD
FROM
(SELECT 'A' AS RGN_CD
FROM DUAL
UNION
SELECT 'B' AS RGN_CD
FROM DUAL
UNION
SELECT 'C' AS RGN_CD
FROM DUAL
UNION
SELECT 'D' AS RGN_CD
FROM DUAL
UNION
SELECT 'E' AS RGN_CD
FROM DUAL
)
)
SELECT LISTAGG(RGN_CD, ',') WITHIN GROUP (ORDER BY RGN_CD)AS RGN_CD
FROM RGN
결과
RGN_CD
--------
A,B,C,D,E
쿼리도 복잡하지 않고 정말 한줄에 끝난다.!!
RGN_CD
--------
A,B,C,D,E
쿼리도 복잡하지 않고 정말 한줄에 끝난다.!!
728x90
반응형
'Development > DataBase' 카테고리의 다른 글
[Oracle]계층구조 가져오기 (0) | 2013.02.12 |
---|---|
[SQL]REGEXP_SUBSTR (0) | 2011.12.20 |
[Oracle]ORDER BY 절에서 NULL 값 위치 지정 (0) | 2011.09.26 |
[SQL] 테이블명, 컬럼명, PK를 조회할수 있는 쿼리 (0) | 2011.09.01 |
[Oracle]ALL_COL_COMMENTS (0) | 2011.09.01 |