2011-03-10 2 views
3

xml을열 이름을 요소로 사용하지 않고 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

약간의 청소 방법. ('ROOT')를 XML 경로에 대한 @tab에서 "@att"(XML AS COL) CAST 이 아름다운 선택 '발'을 시도하지만 솔루션이 더 iwas

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

완벽한, 감사합니다. – Jules