2011-04-26 165 views
0
--------+------------------------------------------------------- 
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> 
--------+------------------------------------------------------- 

我有一個表如在上述結構和類型, 我將其轉換爲結構和類型如下處理在SQL/XML轉換XML爲varchar

--------+------------------------------------------------------- 
int  |varhcar 
--------+------------------------------------------------------- 
2  |  item 21 
--------+------------------------------------------------------- 
2  |  item 22 
--------+------------------------------------------------------- 
3  |  item 31 
--------+------------------------------------------------------- 
4  |  item 41 
--------+------------------------------------------------------- 
4  |  item 42 
--------+------------------------------------------------------- 
4  |  item 43 
--------+------------------------------------------------------- 

任何幫助是讚賞PLZ

回答

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>節點的所有內容。