gpt4 book ai didi

SQL FOR XML 路径,返回多个子元素

转载 作者:行者123 更新时间:2023-12-03 17:32:54 26 4
gpt4 key购买 nike

我要求以以下格式从表中返回数据。

<Root>
<Property name="test1">text1</Property>
<Property name="test2">text2</Property>
<Property name="test3">text3</Property>
<Property name="test4">text4</Property>
</Root>

我已经尝试过其他帖子 SQL Server for xml path add attributes and values 中的代码并且可以让它适用于单行,但不能适用于多行。例如。

Select 'test1' as [@name], 'text1'
FOR XML PATH('Property'), ROOT('Root')

作品捐赠

<Root>
<Property name="test1">text1</Property>
</Root>

但是

Select  'test1' as [@name], 'text1'
,'test2' as [@name], 'text2'
,'test3' as [@name], 'text3'
,'test4' as [@name], 'text4'
FOR XML PATH('Property'), ROOT('Root')

失败

在 FOR XML PATH 的 XML 层次结构中,以属性为中心的列“@name”不得位于非以属性为中心的同级列之后。

无法找到如何获取上面我需要的格式。

最佳答案

对于返回的每一行,路径中使用的元素名称都会重复。如果要在一行中重复相同的元素名称,则需要在列别名中指定元素名称,并且需要使用空列值分隔不同的元素。

select 'test1' as [Property/@name],
'text1' as Property,
null,
'test2' as [Property/@name],
'text2' as Property,
null,
'test3' as [Property/@name],
'text3' as Property,
null,
'test4' as [Property/@name],
'text4' as Property
for xml path(''), root('Root');

关于SQL FOR XML 路径,返回多个子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32199010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com