استخراج العناصر في XML إلى الصفوف في بيان محدد

StackOverflow https://stackoverflow.com/questions/4348583

  •  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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top