sql >> Database >  >> RDS >> Sqlserver

Hoe geneste hiërarchie van xml naar sql-tabel te converteren?

Wat dacht je hiervan (ik heb @input aangegeven? om een ​​XML-gegevenstypevariabele te zijn met uw XML-inhoud - vervang dienovereenkomstig):

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)

Je herhaalt in principe alle /ROOT/WrapperElement/ParentElemet knooppunten (als Parent(Elm) pseudo-tabel), en voor elk van deze items doet u een CROSS APPLY voor de onderliggende elementen in dat ParentElement en haal de nodige informatie eruit.

Zou moeten werken - hoop ik!




  1. Hoe kan ik een round robin-toernooi genereren in PHP en MySQL?

  2. Groot XML-bestand ontleden met PL/SQL

  3. Mysql 5.5.10 - Mac 10.6.x - automatisch starten

  4. SQL-schema genereren uit XML