Elementi di estratto in XML a righe in select
-
30-09-2019 - |
Domanda
ho avuto colonna XML nel mio database sql server 2008. XML di esempio in ogni riga del mio tavolo
<document>
<part1>
<listitem>val1</listitem>
<listitem>val2</listitem>
<listitem>val3</listitem>
</part1>
<part2>
<listitem>val4</listitem>
</part2>
</document>
Vorrei per selezionare tutti gli elementi da tutte le righe. Da campione sopra dovrei avere quattro righe con un valore listitem.
La risposta è
select x.nd.value ('(.)[1]', 'varchar(250)') as ValuesFromXml
from TableWithXmlColumn t cross apply t.XmlContent.nodes (
'//listitem') x(nd);
Grazie per l'aiuto
Soluzione
Si può fare in questo modo:
select Col.value('.', 'varchar(20)')
from yourtable
cross apply XmlColumn.nodes('//listitem') as NewTable(Col)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow