У меня есть столбец XML, который содержит XML вроде этого:
<Set>
<Element>
<ID>
1
</ID>
<List>
<ListElement>
<Part1>
ListElement 1
</Part1>
</ListElement>
<ListElement>
<Part1>
ListElement2
</Part1>
</ListElement>
</List>
</Element>
<Element>
<ID>
2
</ID>
<List>
<ListElement>
<Part1>
ListElement3
</Part1>
</ListElement>
<ListElement>
<Part1>
ListElement4
</Part1>
</ListElement>
</List>
</Element>
</Set>
Я хотел бы разбить это на таблицу отношений, содержащую это:
ID, ListElement
1, ListElement1
1, ListElement2
2, ListElement3
2, ListElement4
Я могу получить содержимое частей, используя что-то вроде этого:
select
List.value('(Part1/text())[1]', 'varchar(max)') as test
from
Table CROSS APPLY
xml.nodes('// Element/List/ListElement') AS List(List)
но я еще не достиг «внешнего ключа» (значения идентификатора).
Спасибо.
С наилучшими пожеланиями,
Christian