Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

wybór pojedynczego węzła xml za pomocą SQL

Powinieneś użyć metody query() jeśli chcesz uzyskać część swojego pliku XML.

declare @XML xml

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

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

Wynik:

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

Jeśli chcesz uzyskać wartość z określonego węzła, użyj metody value() .

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

Wynik:

2

Aktualizacja:

Jeśli chcesz rozdrobnić kod XML do wielu wierszy, użyj metody nodes() .

Aby uzyskać wartości:

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)

Wynik:

(No column name)
1
2

Aby uzyskać cały kod XML:

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

Wynik:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ukryj bazę danych SQL w Management Studio

  2. Łączenie się z MS sql przez hibernację

  3. Projekt bazy danych, aby usunąć bazę danych przed wdrożeniem?

  4. Tworzenie daty w SQL Server 2008

  5. Kopia zapasowa bazy danych MSSQL bez określonej tabeli