#sql-server-2005
#sql-server-2005
Вопрос:
-------- -------------------------------------------------------
int |xml
-------- -------------------------------------------------------
2 |<items>
| <item>
| <description>item 21 </description>
| </item>
| <item>
| <description>item 22</description>
| </item>
|</items>
-------- -------------------------------------------------------
3 |<items>
| <item>
| <description>item 31 </description>
| </item>
|</items>
-------- -------------------------------------------------------
4 |<items>
| <item>
| <description>item 31 </description>
| </item>
| <item>
| <description>item 32</description>
| </item>
| <item>
| <description>item 33</description>
| </item>
|</items>
-------- -------------------------------------------------------
У меня есть таблица, подобная приведенной выше структуре и типу,
Я должен преобразовать его в структуру и тип, как показано ниже
-------- -------------------------------------------------------
int |varhcar
-------- -------------------------------------------------------
2 | item 21
-------- -------------------------------------------------------
2 | item 22
-------- -------------------------------------------------------
3 | item 31
-------- -------------------------------------------------------
4 | item 41
-------- -------------------------------------------------------
4 | item 42
-------- -------------------------------------------------------
4 | item 43
-------- -------------------------------------------------------
Приветствуется любая помощь, пожалуйста
Ответ №1:
Попробуйте это:
SELECT
ID,
Item.value('(description)[1]', 'varchar(50)') AS 'DescText'
FROM
dbo.YourTable
CROSS APPLY
xml.nodes('/items/item') AS Node(Item)
Это должно выбрать идентификатор (или int) из вашей таблицы и захватить все содержимое <description>
узлов из XML.