Acho que estou quase lá com isso, mas cheguei a um impasse!
Eu tenho uma estrutura XML relativamente simples que preciso analisar como um conjunto de resultados SQL, mas não consigo fazê-la funcionar.
Aqui está o código:
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);
Essencialmente, quero extrair os valores de Nacionalidade em:
Key | Value
-------------
UK | Def
IE | Def
Eu posso querer fazer o Currency mais tarde, mas acho que se eu conseguir o acima, o resto será simples o suficiente.
Você pode ajudar por favor?
Com base nos seus dados de entrada, farei algo assim:
saída