0

更明确的问题是:我有一个这样的 XML:

<tag1>
<tag2>
<tag3 name="aaa">
   <tag4 name="value">6299</ns3MetaString>
</tag3>
<tag3 name="bbb">
   <tag4 name="value">123456</ns3MetaString>
</tag3>
</tag2>
<tag2>
<tag3 name="aaa">
   <tag4 name="value">123</ns3MetaString>
</tag3>
<tag3 name="bbb">
   <tag4 name="value">2344346</ns3MetaString>
</tag3>
</tag2>
</tag1>

我只需要 sql 中的输出作为一个表

col1    col2
-------------
6299   123456
123    2344346
4

1 回答 1

0

这个怎么样?

DECLARE @xmldata XML = '<tag1>
<tag2>
<tag3 name="aaa">
   <tag4 name="value">6299</tag4>
</tag3>
<tag3 name="bbb">
   <tag4 name="value">123456</tag4>
</tag3>
</tag2>
</tag1>'

SELECT
    Col1 = @xmldata.value('(/tag1/tag2/tag3[@name="aaa"]/tag4)[1]', 'int'),
    Col2 = @xmldata.value('(/tag1/tag2/tag3[@name="bbb"]/tag4)[1]', 'int')

给我你的输出。

于 2013-04-30T16:01:35.390 回答