我有一张Table
有一列的表ID
。它包含简单的字母,假设 Table = 'A', 'B', 'C'。
我需要创建一个看起来像这样的 xml 文件
<Table>
<ID>A</ID>
<ID>B</ID>
<ID>C</ID>
</Table>
所以我尝试了
select * from Table for XML AUTO, ELEMENTS
但这会产生
<Table>
<ID>A</ID>
</Table>
<Table>
<ID>B</ID>
</Table>
<Table>
<ID>B</ID>
</Table>
据我了解,内部节点集合代表表的一条记录(在这种情况下,由单个字段/节点组成),周围的标签表示记录本身。但这不是我希望看到的。
我的(相当脏的)解决方案将 xml 转换为字符串,删除
</Table><Table>
配对然后重建 XML
declare @x nvarchar(max)
set @x = (select id from Table for xml auto, elements)
set @x = replace(@x, '</Table><Table>', '')
select cast(@x as xml)
我的问题很简单:是否有正确的方法来实现我的目标,还是我必须接受这个丑陋的“解决方案”?