استخراج العناصر في XML إلى الصفوف في بيان محدد
-
30-09-2019 - |
سؤال
لقد حصلت على عمود XML في قاعدة بيانات SQL Server 2008 الخاصة بي. عينة XML في كل صف من طاولتي
<document>
<part1>
<listitem>val1</listitem>
<listitem>val2</listitem>
<listitem>val3</listitem>
</part1>
<part2>
<listitem>val4</listitem>
</part2>
</document>
أود اختيار جميع العناصر من جميع الصفوف. من العينة أعلاه ، يجب أن أحصل على أربعة صفوف ذات قيمة ListItem.
الجواب هو
select x.nd.value ('(.)[1]', 'varchar(250)') as ValuesFromXml
from TableWithXmlColumn t cross apply t.XmlContent.nodes (
'//listitem') x(nd);
شكرا للمساعدة
المحلول
يمكنك أن تفعل ذلك مثل هذا:
select Col.value('.', 'varchar(20)')
from yourtable
cross apply XmlColumn.nodes('//listitem') as NewTable(Col)
لا تنتمي إلى StackOverflow