J'ai ce XML dans T-SQL:XML dans Aplatissement SQLXML
<Elements>
<Element>
<Index>1</Index>
<Type>A</Type>
<Code>AB</Code>
<Time>1900-01-01T10:21:00</Time>
</Element>
<Element>
<Index>2</Index>
<Type>M</Type>
<Code>AL</Code>
<Time>1900-01-01T10:22:00</Time>
</Element>
</Elements>
Et je veux le récupérer comme une table:
Index FieldName FieldValue
-------- ------------ ----------
1 Index 1
1 Type A
1 Code AB
1 Time 1900-01-01T10:21:00
2 Index 2
2 Type M
2 Code AL
2 Time 1900-01-01T10:22:00
Bien sûr, ce que je cherche ici est de faire pivoter les noeuds d'élément en lignes, mais je ne peux pas obtenir plus que la valeur du champ ou de l'indice à un moment ...
select
-- r.value('.[1]', 'nvarchar(10)') Value,
-- r.value('fn:local-name(.)', 'nvarchar(50)') FieldName
r.value('Index[1]', 'nvarchar(10)') f,
r.value('./node()[fn:local-name(.)]', 'nvarchar(10)') v
from
@content.nodes('/Elements/*') as records(r)
Parfait! Je vous remercie! :) –
Je viens de virer un peu: O WH SubEl.SubElem.value ('nom-local (.)', 'Varchar (100)') <> 'Index' –