2011-12-14 51 views
2

我想從xml中的表中輸出一些字段。我需要將該列的名稱放在name屬性中。輸出必須類似於:如何在TSQL中輸出具有屬性和字段值的xml

<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('') 

感謝,萊昂

回答

6

我猜你正在尋找的東西是這樣的:

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> 
+0

就是這樣,謝謝Mikael – lcarpay 2011-12-14 12:59:24

相關問題