sql >> Databáze >  >> RDS >> Sqlserver

výběr jednotlivého xml uzlu pomocí SQL

Měli byste použít metodu query() pokud chcete získat část vašeho XML.

declare @XML xml

set @XML = 
'
<root>
  <row1>
    <value>1</value>
  </row1>
  <row2>
    <value>2</value>
  </row2>
</root>
'

select @XML.query('/root/row2')

Výsledek:

<row2>
  <value>2</value>
</row2>

Pokud chcete hodnotu z konkrétního uzlu, měli byste použít metodu value() .

select @XML.value('(/root/row2/value)[1]', 'int')

Výsledek:

2

Aktualizace:

Pokud chcete svůj XML skartovat na více řádků, použijte metodu nodes() .

Chcete-li získat hodnoty:

declare @XML xml

set @XML = 
'
<root>
  <row>
    <value>1</value>
  </row>
  <row>
    <value>2</value>
  </row>
</root>
'

select T.N.value('value[1]', 'int')
from @XML.nodes('/root/row') as T(N)

Výsledek:

(No column name)
1
2

Chcete-li získat celý XML:

select T.N.query('.')
from @XML.nodes('/root/row') as T(N)

Výsledek:

(No column name)
<row><value>1</value></row>
<row><value>2</value></row>



  1. Naplnění databáze bez příkazu load data

  2. Jak vybrat řádky podle časového intervalu v mysql?

  3. Migrace databáze Microsoft Access na SQL Server

  4. Mezisoučty a SQL