我想在这个结果中生成xml格式的oraclesql。我的问题如下:
Select xmlelement(“main”,xmlelement(“id”,id)) from tableA <main> <id>1</id> <id>2</id> </main>
但我总是得到这个结果
<main> <id>1</id> </main> <main> <id>2</id> </main>
帮帮忙谢谢编辑:我只需要一个执行查询,而不是按行。
amrnrhlw1#
如果不希望结果集按行处理,则需要在多行上进行聚合。在处理数字时,可以使用聚合函数,如 SUM , MIN , MAX , AVG 等。;对于字符串,可以使用 LISTAGG 功能;但是对于xml数据,您需要 XMLAGG 功能:
SUM
MIN
MAX
AVG
LISTAGG
XMLAGG
SELECT XMLELEMENT( "main", XMLAGG( XMLELEMENT("id",id) ) ) AS xml FROM tableA
对于您的示例数据:
CREATE TABLE tableA ( id ) AS SELECT 1 FROM DUAL UNION ALL SELECT 2 FROM DUAL
输出:
| XML | | :-------------------------------- | | <main><id>1</id><id>2</id></main> |
db<>在这里摆弄
1条答案
按热度按时间amrnrhlw1#
如果不希望结果集按行处理,则需要在多行上进行聚合。在处理数字时,可以使用聚合函数,如
SUM
,MIN
,MAX
,AVG
等。;对于字符串,可以使用LISTAGG
功能;但是对于xml数据,您需要XMLAGG
功能:对于您的示例数据:
输出:
db<>在这里摆弄