Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在TSQL中输出带有属性和字段值的xml_Xml_Tsql - Fatal编程技术网

如何在TSQL中输出带有属性和字段值的xml

如何在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> 信息测试 阿姆斯特丹 我

我想用xml从表中输出一些字段。我需要在name属性中输入列的名称。输出必须类似于:

<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好听。如果是您想要的答案,您应该使用左侧的复选标记接受答案。