我有以下作为更大的Select查询的一部分到目前为止工作得很好,并帮助我为column1中的每个记录只获得一行。
但是,这会为column2,column3和column4返回一个单独的XML元素,而我需要将它们全部放在一列中。
有人可以告诉我如何将这三列的XML元素合并为一个吗?
在研究这个时,我遇到XMLFOREST
,但这似乎不是一个广泛使用的功能,我不知道如何在这里应用它。
我的查询(相关部分):
SELECT
a.column1 AS Column1
, RTRIM(XMLAGG(XMLELEMENT(e, b.column2) ORDER BY b.column2).EXTRACT('//text()'), ',') AS Column2
, RTRIM(XMLAGG(XMLELEMENT(e, b.column3) ORDER BY b.column3).EXTRACT('//text()'), ',') AS Column3
, RTRIM(XMLAGG(XMLELEMENT(e, b.column4) ORDER BY b.column4).EXTRACT('//text()'), ',') AS Column4
, c.column5 AS Column5
/* ... */
FROM
/* ... */
非常感谢您的任何帮助,
麦克
答案 0 :(得分:-1)
SELECT
a.column1 AS Column1
, RTRIM(XMLAGG(XMLELEMENT(e, b.column2||','||b.column3||','||b.column4) ORDER BY b.column2).EXTRACT('//text()'), ',') AS Column2
, c.column5 AS Column5
/* ... */
FROM
/* ... */