Generate XML with Same Node Names using FOR XML PATH
In this post, we are going to see how we can generate XML in the below-mentioned format from the relational data.
<row>
<column>1</column>
<column>1</column>
</row>
<row>
<column>2</column>
<column>2</column>
</row>
Here is an example:
--Sample data
DECLARE @Temp TABLE (Id1 INT, Id2 INT)
INSERT @Temp SELECT 1,1
INSERT @Temp SELECT 2,2
SELECT * FROM @Temp
--If we mention same alias name for all columns, all column values will be merged
SELECT Id1 [column],
Id2 [column]
FROM @Temp
FOR XML PATH
/**XML result for above query
<row>
<column>11</column>
</row>
<row>
<column>22</column>
</row>
**/
--To overcome the above problem
-- Method 1 :
SELECT Id1 [column],
'',
Id2 [column]
FROM @Temp
FOR XML PATH
-- Method 2 :
SELECT Id1 [column],
NULL,
Id2 [column]
FROM @Temp
FOR XML PATH
/**XML result for above Method 1 & Method 2 query
<row>
<column>1</column>
<column>1</column>
</row>
<row>
<column>2</column>
<column>2</column>
</row>
**/
This entry participates in the TechNet Guru contributions for June contest.