У меня есть столбец 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);
Спасибо за помощь