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

Bagaimana cara membaca xml di t-sql?

Dengan asumsi Anda memiliki XML ini dalam variabel T-SQL - maka Anda dapat menggunakan potongan kode ini:

DECLARE @input XML = '...(your XML here).....'

SELECT
    Key1 = Item.value('(key)[1]', 'int'),
    Key2 = Item2.value('(key)[1]', 'int'),
    ItemValue = Item2.value('(value)[1]', 'varchar(50)')
FROM 
    @input.nodes('/root/item') AS T(Item)
CROSS APPLY
    item.nodes('value/params/item') AS T2(Item2)

Ini memberi saya output dari:

Key1  Key2  ItemValue
 1     1     value
 1     2     value2
 1     3     value3
 2     4     value4
 2     5     value5
 2     6     value6  

Pendekatannya adalah sebagai berikut:

  • ambil daftar <item> node di bawah <root> sebagai "daftar node XML" pertama Anda dengan .nodes() . pertama Anda metode XQuery, dan ekstrak nilai <key> Elemen XML dalam fragmen XML itu menjadi Key1

  • ambil daftar node XML "bersarang" di dalam fragmen XML itu, menggunakan value/params/item XPath, untuk mendapatkan baris anak - dan ekstrak nilainya dari <key> dan <value> dari fragmen XML anak yang disarangkan ke Key2 dan ItemValue




  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:Bagaimana cara mengizinkan skema?

  2. Cara mendapatkan nilai unik dari semua kolom tabel di SQL Server

  3. Kesalahan SQL:Konversi tipe data varchar ke tipe data datetime menghasilkan nilai di luar rentang

  4. Seluruh Proses untuk Memulihkan Database SQL Server Dari Command Prompt

  5. Cari antara tanggal dan waktu di SQL Server 2008