2014-02-25 3 views
2

나는 현재이 사용하고 있습니다 :키 값 쌍 XML (SQL 서버 2005)

SELECT Column1, Column2 
FROM SomeTable 
FOR XML PATH(''), ROOT('KeyValuePairs') 

이 생산 :

:

<KeyValuePairs> 
<Column1>ColumValue1</Column1> 
<Column2>ColumValue1</Column2> 
</KeyValuePairs> 

을 같은 더 자세한 설명 무언가를 생산하는 방법이

<KeyValuePairs> 
<KeyValuePair><Key>Column1</Key><Value>ColumValue1</Value></KeyValuePair> 
<KeyValuePair><Key>Column2</Key><Value>ColumValue2</Value></KeyValuePair> 
</KeyValuePairs> 

답변

2
SELECT (
     SELECT 'Column1' AS [Key], 
       T.Column1 AS Value 
     FOR XML PATH('KeyValuePair'), TYPE 
     ), 
     (
     SELECT 'Column2' AS [Key], 
       T.Column2 AS Value 
     FOR XML PATH('KeyValuePair'), TYPE 
     ) 
FROM SomeTable AS T 
FOR XML PATH('KeyValuePairs') 

대체 :

SELECT 'Column1' AS [KeyValuePair/Key], 
     T.Column1 AS [KeyValuePair/Value], 
     NULL, 
     'Column2' AS [KeyValuePair/Key], 
     T.Column2 AS [KeyValuePair/Value] 
FROM SomeTable AS T 
FOR XML PATH('KeyValuePairs') 
+0

죄송합니다. 그러나 이것은 올바르지 않습니다. – cs0815

+0

@csetzkorn 어떤 방식으로 잘못했는지 설명 할 수 있다면 문제를 해결할 수 있습니다. –

+0

두 개의 열이 있으므로 귀하의 경우처럼 두 개의 키 값 쌍이 필요합니다. – cs0815