如何在TSQL中输出带有属性和字段值的xml
我想用xml从表中输出一些字段。我需要在name属性中输入列的名称。输出必须类似于:如何在TSQL中输出带有属性和字段值的xml,xml,tsql,Xml,Tsql,我想用xml从表中输出一些字段。我需要在name属性中输入列的名称。输出必须类似于: <udfields> <udfield name="infoplanner">Test for the info</udfield> <udfield name="plant">Amsterdam</udfield> <udfield name="capability"/> </udfields> 信息测试 阿姆斯特丹 我
<udfields>
<udfield name="infoplanner">Test for the info</udfield>
<udfield name="plant">Amsterdam</udfield>
<udfield name="capability"/>
</udfields>
信息测试
阿姆斯特丹
我试过这样的方法:
SELECT TOP 3
ko.infoPlanner AS "udfield/name/@infoplanner"
, ko.plant AS "udfield/name/@plant"
, ko.capability AS "udfield/name/@capability"
FROM sometable ko
WHERE CONVERT(VARCHAR(8), ko.datumtijd, 112) = CONVERT(VARCHAR(8), GETDATE(), 112)
AND COALESCE(ko.infoPlanner, '') <> ''
FOR XML PATH('')
选择前三名
ko.infoPlanner作为“udfield/name/@infoPlanner”
,ko.plant为“udfield/name/@plant”
,ko.capability为“udfield/name/@capability”
来自sometable ko
其中CONVERT(VARCHAR(8),ko.datumtijd,112)=CONVERT(VARCHAR(8),GETDATE(),112)
和联合(ko.infoPlanner,)”
对于XML路径(“”)
提前谢谢你,leon我想你在找这样的东西:
declare @T table
(
infoplanner int,
plant int,
capability int
)
insert into @T
select 1, 2, 3 union all
select 10, 20 ,30
select (select 'infoplanner' as '@name',
infoplanner as '*'
for xml path('udfield'), type),
(select 'plant' as '@name',
plant as '*'
for xml path('udfield'), type),
(select 'capability' as '@name',
capability as '*'
for xml path('udfield'), type)
from @T
for xml path('udfields')
结果:
<udfields>
<udfield name="infoplanner">1</udfield>
<udfield name="plant">2</udfield>
<udfield name="capability">3</udfield>
</udfields>
<udfields>
<udfield name="infoplanner">10</udfield>
<udfield name="plant">20</udfield>
<udfield name="capability">30</udfield>
</udfields>
1.
2.
3.
10
20
30
@lcarpay好听。如果是您想要的答案,您应该使用左侧的复选标记接受答案。