--------+-------------------------------------------------------
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
--------+-------------------------------------------------------
任何帮助表示赞赏PLZ
答案 0 :(得分:1)
试试这个:
SELECT
ID,
Item.value('(description)[1]', 'varchar(50)') AS 'DescText'
FROM
dbo.YourTable
CROSS APPLY
xml.nodes('/items/item') AS Node(Item)
那应该从表中选择ID(或int),并从XML中获取<description>
个节点的所有内容。