개발하자/ORACLE
[Oracle] 버전별 Group By에서 문자열 합치기 (여러 ROW를 한줄로)
i구야
2016. 11. 3. 13:28
WITH tbl (type, name, code) AS (
SELECT 'STRING', 'BBB', '1' FROM dual UNION ALL
SELECT 'INTEGER', '222', '1' FROM dual UNION ALL
SELECT 'STRING', 'CCC', '2' FROM dual UNION ALL
SELECT 'INTEGER', '333', '2' FROM dual UNION ALL
SELECT 'STRING', 'AAA', '0' FROM dual UNION ALL
SELECT 'STRING', 'DDD', '3' FROM dual UNION ALL
SELECT 'INTEGER', '111', '0' FROM dual
)
SELECT type
, SUBSTR(XMLAgg(XMLElement(x, ',', name) ORDER BY code).Extract('//text()'), 2) AS ORA_9i
, WM_CONCAT(name) AS ORA_10g
, ListAgg(name, ',') WITHIN GROUP(ORDER BY code) AS ORA_11g
FROM tbl
WHERE 1=1
GROUP BY type
ORDER BY type
출처 : 오라클클럽