Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

memilih node xml individu menggunakan SQL

Anda harus menggunakan Metode query() jika Anda ingin mendapatkan bagian dari XML Anda.

declare @XML xml

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

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

Hasil:

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

Jika Anda menginginkan nilai dari node tertentu, Anda harus menggunakan nilai() Metode .

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

Hasil:

2

Pembaruan:

Jika Anda ingin memecah XML menjadi beberapa baris, gunakan nodes() Metode .

Untuk mendapatkan nilai:

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)

Hasil:

(No column name)
1
2

Untuk mendapatkan seluruh XML:

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

Hasil:

(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. SQL Server:Memahami fungsi DATEDIFF

  2. Cara menampilkan catatan beberapa kali termasuk interval hari berdasarkan tanggal mulai dan berakhir

  3. MappingException Edm.String tidak kompatibel dengan SqlServer.varbinary

  4. Perbarui Data tabel tanpa menggunakan loop sementara di sql server 2005

  5. DateTime.Now ke smalldatetime?