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

Bagaimana mengonversi hierarki bersarang dari xml ke tabel sql

Bagaimana dengan ini (saya mendeklarasikan @input menjadi variabel tipe data XML dengan konten XML Anda - ganti yang sesuai):

SELECT
    Parent.Elm.value('(@ID)[1]', 'int') AS 'ID',
    Parent.Elm.value('(Title)[1]', 'varchar(100)') AS 'Title',
    Parent.Elm.value('(Description)[1]', 'varchar(100)') AS 'Description',
    Child.Elm.value('(@ID)[1]', 'int') AS 'ChildID',
    Child.Elm.value('(Title)[1]', 'varchar(100)') AS 'ChildTitle',
    Child.Elm.value('(StartDate)[1]', 'DATETIME') AS 'StartDate',
    Child.Elm.value('(EndDate)[1]', 'DATETIME') AS 'EndDate'
FROM
    @input.nodes('/ROOT/WrapperElement/ParentElement') AS Parent(Elm)
CROSS APPLY
    Parent.Elm.nodes('ChildElement') AS Child(Elm)

Anda pada dasarnya mengulangi semua /ROOT/WrapperElement/ParentElemet node (sebagai Parent(Elm) pseudo table), dan untuk setiap entri tersebut, Anda kemudian melakukan CROSS APPLY untuk elemen anak yang terkandung di dalam ParentElement dan ambil informasi yang diperlukan.

Harus bekerja - saya harap!




  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 dan celah di kolom Identitas

  2. Buat SQL INSERT Script dengan nilai yang dikumpulkan dari tabel

  3. Cara Memperbaiki "Hanya satu ekspresi yang dapat ditentukan dalam daftar pilih ..." di SQL Server

  4. Cara mendapatkan daftar Tabel tanpa Batasan Kunci Utama di Database SQL Server - Tutorial SQL Server / T-SQL Bagian 58

  5. Periksa Berapa Banyak Item Email dalam Antrian di Database Mail di SQL Server (T-SQL)