2011-03-10 22 views
3

我想将xml从列打包到out列中作为xml路径查询而不使用 列名称作为元素。将xml列值包装到外部以查找xml路径

declare @tab table (col xml) 
insert @tab 
select '<element/>' 

select 'val' AS "@att" , col 
from @tab 
for xml path ('ROOT') 

这给

<ROOT att="val"> 
    <col> 
    <element /> 
    </col> 
</ROOT> 

,但我想

<ROOT att="val"> 
    <element /> 
</ROOT> 

所有帮助最赞赏。

回答

1

一个小清洁的方法。

SELECT 
    'val' AS [@att], 
    [col] AS [*] 
FROM 
    @tab 
FOR XML PATH ('ROOT'); 
2
select 
    'val' AS "@att", 
    (select col) 
from @tab 
for xml path ('ROOT') 
+0

完美,感谢IWAS从@tab 尝试此选择 'VAL' AS “@att”,CAST(COL AS XML) 用于XML路径( '根'),但您的解决方案更好。 – Jules 2011-03-10 14:33:20