有什么方法可以区分XMLAGG功能

时间:2017-10-23 07:14:23

标签: sql xml plsql oracle11g

有什么方法可以与XMLAGG功能区别开来。

SELECT DBMS_LOB.SUBSTR(RTRIM(XMLAGG(XMLELEMENT(e,A.COLUMN1 ,';').EXTRACT('//text()') 
                        ORDER BY A.COLUMN3 ).GETCLOBVAL(),';'),4000,1)
                        FROM (SELECT COLUMN1 ,COLUMN2, COLUMN3 FROM 
                        TABLE1) A,
                        TABLE2
                    WHERE A.COLUMN2=B.COLUMN2;

这是该表的值1.所以我想在不影响column3顺序的情况下区分column1和column2

Column1      Column2    Column3
test         apple        1
test         apple        2
test         apple        3
sample       apple        4

输出应该看起来像

column
test
sample

1 个答案:

答案 0 :(得分:0)

通过子查询尝试在order之前groupXMLAGG,尝试一下

SELECT DBMS_LOB.SUBSTR(RTRIM(XMLAGG(XMLELEMENT(e,C.COLUMN1,';').EXTRACT('//text()')
     ).GETCLOBVAL(),';'),4000,1)
From ( Select A.Column1
       FROM TABLE1 A, TABLE2 B
       WHERE A.COLUMN2=B.COLUMN2
       group by A.Column1, A.Column2
     ) C;