如何将MSSQL服务器表转换为更好的XML格式?
如何转换MSSQL 2012表格(#myTable),如下所示:如何将MSSQL服务器表转换为更好的XML格式?,sql,xml,select,path,Sql,Xml,Select,Path,如何转换MSSQL 2012表格(#myTable),如下所示: name|lastname|child1|age1|child2|age2|child3|age3| prnt|prnt2 Jack|Jones |Jill |2 |Joe |4 |Mike |5 | Mark| Lizy <familyTree> <firstname> Jack </firstname> <lastname> Jones
name|lastname|child1|age1|child2|age2|child3|age3| prnt|prnt2
Jack|Jones |Jill |2 |Joe |4 |Mike |5 | Mark| Lizy
<familyTree>
<firstname> Jack </firstname>
<lastname> Jones </lastname>
<babies>
<baby> Jill </baby>
<old> 2 </old>
<babies>
<babies>
<baby> Joe </baby>
<old> 4 </old>
<babies>
<babies>
<baby> Mike </baby>
<old> 5 </old>
<babies>
<father>Mark </father>
<mother>lizy </mother>
</familyTree>
SELECT
name AS "firstname",
lastname AS "lastname",
child1 AS "babies/baby",
age1 AS "babies/old",
child2 AS "babies/baby",
age2 AS "babies/old",
child3 AS "babies/baby",
age3 AS "babies/old",
prnt AS "father",
prnt2 AS "mother"
FROM #myTable
FOR XML PATH('familyTree')
要创建如下XML格式:
name|lastname|child1|age1|child2|age2|child3|age3| prnt|prnt2
Jack|Jones |Jill |2 |Joe |4 |Mike |5 | Mark| Lizy
<familyTree>
<firstname> Jack </firstname>
<lastname> Jones </lastname>
<babies>
<baby> Jill </baby>
<old> 2 </old>
<babies>
<babies>
<baby> Joe </baby>
<old> 4 </old>
<babies>
<babies>
<baby> Mike </baby>
<old> 5 </old>
<babies>
<father>Mark </father>
<mother>lizy </mother>
</familyTree>
SELECT
name AS "firstname",
lastname AS "lastname",
child1 AS "babies/baby",
age1 AS "babies/old",
child2 AS "babies/baby",
age2 AS "babies/old",
child3 AS "babies/baby",
age3 AS "babies/old",
prnt AS "father",
prnt2 AS "mother"
FROM #myTable
FOR XML PATH('familyTree')
将导致:
<familyTree>
<firstname> Jack </firstname>
<lastname> Jones </lastname>
<babies>
<baby> Jill </baby>
<old> 2 </old>
<baby> Joe </baby>
<old> 4 </old>
<baby> Mike </baby>
<old> 5 </old>
<babies>
<father>Mark </father>
<mother>lizy </mother>
</familyTree>
杰克
琼斯
吉尔
2.
乔
4.
迈克
5.
做记号
丽萃
此结构与上面给出的所需结构不同。如能提供任何帮助或朝正确方向迈出一步,我们将不胜感激?提前谢谢你。这里是诀窍(以防将来有人试图克服同样的情况)
哪个数据库供应商?很多都内置了用于xml呈现关系数据的功能。很抱歉,忘了提及它。这是微软SQL server 2012。我编辑了问题的标题。谢谢,我能理解你的困惑。同样,我理解它为什么会这样做。你会认为这个年龄是婴儿的属性吗?谢谢你,丹。不幸的是,无法将其更改为属性。它应该是嵌套的节点。我找到了这个链接,但它是用来读取行并将它们格式化为嵌套格式的。我正试着用它做实验。也许有人已经找到了这个问题的解决方案,并阐明了如何做到这一点。