日期:2014-05-17  浏览次数:20697 次

SQL 解析XML
用xml脚本解析下面的XML
<root>
  <item>
     <id>1</id>
     <files>
        <filename>aaa</filename>
        <filename>bbb</filenaem>
     </files>
  </item>
  <item>
     <id>2</id>
     <files>
        <filename>xxx</filename>
        <filename>yyy</filename>
     </files>
  </item>
</root>

希望得到的结果为:
id   filename
1    aaa
1    bbb
2    xxx
2    yyy

------解决方案--------------------
http://blog.csdn.net/happyflystone/article/category/542302很多年没搞过了,不懂,看看有没有帮助
------解决方案--------------------
既然搞过就应该会吧,又不是很难,呵呵。

declare @x xml = '<root>
  <item>
     <id>1</id>
     <files>
        <filename>aaa</filename>
        <filename>bbb</filename>
     </files>
  </item>
  <item>
     <id>2</id>
     <files>
        <filename>xxx</filename>
        <filename>yyy</filename>
     </files>
  </item>
</root>'
select x.value('../../id[1]', 'int')id, x.value('.','varchar(10)')filename from @x.nodes('//filename') t(x)
/*
希望得到的结果为:
id   filename
1    aaa
1    bbb
2    xxx
2    yyy 
*/