wm_concat 함수가 안먹는대요.. 0 2 7,116

by 손님 [Oracle 기초] [2011.08.24 16:17:35]


오라클 13 인대..
wm_concat 함수가 안먹네요..
밑에 퀴리도 안돼고
select wm_concat(job) from emp 이것도 안되네요
문법 오류인가요??

WITH T_TABLE
AS (
    SELECT '서울' city, 'T1000' pid FROM DUAL UNION ALL
    SELECT '서울' city, 'T2000' pid FROM DUAL UNION ALL
    SELECT '부산' city, 'T2000' pid FROM DUAL UNION ALL
    SELECT '서울' city, 'T3000' pid FROM DUAL UNION ALL
    SELECT '제주' city, 'T3000' pid FROM DUAL UNION ALL
    SELECT '서울' city, 'T3000' pid FROM DUAL UNION ALL
    SELECT '제주' city, 'T3000' pid FROM DUAL
)
SELECT a.pid
       ,wm_concat(a.city) AS new_column
      --replace(wm_concat(city),',','|') AS new_column
FROM  T_TABLE a
GROUP BY a.pid
by 마농 [2011.08.24 22:46:33]
오라클 13 도 있던가요?
wm_concat 는 10g 에서 되구요.
11g 에서는 ListAgg 를 사용하시면 되구요
9i 에서는 XmlAgg 를 사용하시면 됩니다.
Connect_by_path 를 이용하는 방법도 있습니다.

SELECT pid
, SUBSTR(XMLAgg(XMLElement(x, '|', city)).Extract('//text()'), 2) v_9i
, wm_concat(city) v_10g
, ListAgg(city, '|') WITHIN GROUP(ORDER BY rownum) v_11g
FROM t_table
GROUP BY pid
;

by 문잡 [2011.08.25 09:36:47]
ㄳ 합니다..
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입