2015-02-04 2 views
0

이름 - 값 쌍을 포함하는 테이블이 있습니다. XML 요소 이름으로 [Name] 열과 XML 노드의 내용으로 [Value] 열이있는 각 이름 - 값 쌍에 대해 단일 요소가있는 XML 구조에 이름 값 쌍을 직렬화하려고합니다.NVP SQL 테이블을 XML로 변환

나는이처럼 보이는 XML 청크를 원하는

;with nvp (Name, Value) as 
(
    select 'Food', 'Tacos' union all 
    select 'Height', '5''9"' union all 
    select 'Value', '3.141' 
) 
select * 
from nvp 

다음 샘플 데이터 ... 제공 : 내가 원하는하지 무엇이다, 내가 뭔가 아래와 같이 얻을 XML 경로 시도

<root> 
    <Food>Tacos</Food> 
    <Height>5'9"</Height> 
    <Value>3.141</Value> 
</root> 

.

<root> 
    <Name>Food</Name> 
    <Value>Tacos</Value> 
</root> 
<root> 
    <Name>Height</Name> 
    <Value>5'9"</Value> 
</root> 
<root> 
    <Name>Value</Name> 
    <Value>3.141</Value> 
</root> 

누구나이 방법을 알고 계십니까?

답변

0

행 전환을 수행 한 후 XML으로 변환하십시오.

또한 Xml path()

;WITH nvp (NAME, Valued) 
    AS (SELECT 'Food', 'Tacos' 
     UNION ALL 
     SELECT 'Height', '5''9"' 
     UNION ALL 
     SELECT 'Value', '3.141') 
SELECT * 
FROM nvp 
     PIVOT (Max(valued) 
      FOR NAME IN ([Food], 
          [Height], 
          [Value])) pv 
FOR xml path('root') 

결과에서 루트 이름을 언급 :

<root> 
    <Food>Tacos</Food> 
    <Height>5'9"</Height> 
    <Value>3.141</Value> 
</root>