將多row的相同資料串成string

EX: 相同的DISNO有不同的CITYID,希望把他串成一個string

擷取.JPG

擷取.JPG

方法1: 使用LISTAGG  (ORACLE 11g, 有長度限制4000char)
SELECT DISNO, LISTAGG(CITYID, ',') WITHIN GROUP(ORDER BY DISNO) CITYIDS
FROM ADDR WHERE DISNO= '40230'
GROUP BY DISNO; 

方法2:  使用XMLAGG

SELECT DISNO, RTRIM(XMLAGG (XMLELEMENT (e, CITYID, ',')).EXTRACT ('//text()').getclobval(), ',') CITYIDS
FROM ADDR WHERE DISNO= '40230'
GROUP BY DISNO;
--CITYID資料PARSE成XML<e></e>模式,再進行串接

 

arrow
arrow
    文章標籤
    oracle sql LISTAGG XMLAGG
    全站熱搜

    咪卡恰比 發表在 痞客邦 留言(0) 人氣()