我想我快到了,但已经陷入僵局!
我有一个相对简单的 XML 结构,我需要将其解析为 SQL 结果集,但似乎无法使其工作。
这是代码:
DECLARE @xml XML;
SET @xml = '
<values>
<Nationality>
<item>
<key>UK</key>
<value>def</value>
</item>
<item>
<key>IE</key>
<value>def</value>
</item>
</Nationality>
<Currency>
<item>
<key>GBP</key>
<value>123</value>
</item>
<item>
<key>EUR</key>
<value>345</value>
</item>
</Currency>
</values>';
select I.X.value('(/key/text())[1]', 'int') as ItemID,
I.X.value('(/value/text())[1]', 'int') as Store
from @XML.nodes('/values/Nationality') as O(X)
cross apply O.X.nodes('/item') as I(X);
本质上,我想从国籍中提取价值:
Key | Value
-------------
UK | Def
IE | Def
我可能想稍后再做货币,但我认为如果我破解了上述问题,那么剩下的就足够简单了。
你能帮忙吗?
根据您的输入数据,我将执行以下操作:
输出