카테고리 없음
[Oracle] 문자열 연결 기능(XMLAgg, WM_CONCAT, LISTAGG)
Edward. K
2020. 6. 15. 16:09
반응형
- Oracle 버전 확인
SELECT * FROM V$VERSION;
- 조회 결과를 하나의 컬럼에 나타내고자 할때.. 다음과 같은 결과를
SELECT ERR_MSG
FROM T_ERR_TEST
WHERE ERR_SEQ = '12341234'
- Oracle 버전별 문자열 연결
SELECT SUBSTR(XMLAgg(XMLELEMENT(x, '</br>', ERR_MSG) ORDER BY ERR_MSG).EXTRACT('//text()'), 2) "9i"
, WM_CONCAT(ERR_MSG) "10g"
, LISTAGG(ERR_MSG, '</br>') WITHIN GROUP(ORDER BY ERR_MSG) "11g"
FROM T_ERR_TEST
WHERE ERR_SEQ = '12341234'
EXAMPLE 2.
-
SELECT MSG_CODE || ':' || COUNT(*) AS MSG
FROM T_MSG_INFO
WHERE MSG_FLAG = 'Y'
AND TO_CHAR(MSG_DATE,'YYYYMMDDHH24MISS') <= TO_CHAR(SYSDATE - 0.1/24,'yyyymmddhh24miss')
AND TO_CHAR(MSG_DATE,'YYYYMMDDHH24MISS') >= TO_CHAR(SYSDATE - 1/24,'yyyymmddhh24miss')
GROUP BY MSG_CODE
ORDER BY MSG_CODE
SELECT
RTRIM(XMLAGG(XMLELEMENT("nm", MSG||'건,')).EXTRACT('//text()').GETSTRINGVAL(), ',') AS MSG_INFO
FROM (
SELECT MSG_CODE || ':' || COUNT(*) AS MSG
FROM T_MSG_INFO
WHERE MSG_FLAG = 'Y'
AND TO_CHAR(MSG_DATE,'YYYYMMDDHH24MISS') <= TO_CHAR(SYSDATE - 0.1/24,'yyyymmddhh24miss')
AND TO_CHAR(MSG_DATE,'YYYYMMDDHH24MISS') >= TO_CHAR(SYSDATE - 1/24,'yyyymmddhh24miss')
GROUP BY MSG_CODE
ORDER BY MSG_CODE
)
반응형