इसके बारे में कैसे (मैंने @input
declared घोषित किया अपनी एक्सएमएल सामग्री के साथ एक्सएमएल डेटाटाइप वैरिएबल बनने के लिए - तदनुसार बदलें):
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)
आप मूल रूप से सभी /ROOT/WrapperElement/ParentElemet
. पर पुनरावृति करते हैं नोड्स (Parent(Elm)
के रूप में) छद्म तालिका), और उनमें से प्रत्येक प्रविष्टि के लिए, आप तब एक CROSS APPLY
. करते हैं उस ParentElement
. के अंदर निहित बाल तत्वों के लिए और आवश्यक जानकारी निकाल लें।
काम करना चाहिए - मुझे उम्मीद है!