2010-03-09 63 views
0

我有一個帶有xml列的表(在sqlserver05上)。列的格式與此類似:在sql server上將xml的子集從一列複製到另一列

<doc> 
    <field name="a">foo</field> 
    <field name="b">bar</field> 
    <field name="c">fizz</field> 
    <field name="d">buzz</field> 
</doc> 

我想是XML的一個子集複製到一個新的XML列,例如:

<doc> 
    <field name="a">foo</field> 
    <field name="c">fizz</field> 
</doc> 

我該怎麼辦呢?

編輯:這是對我工作(基於公認的答案)

UPDATE tbl 
SET xml_SubColumn = 
    xml_Column.query('<doc>{//field[@name="a" or @name="c"]}</doc>') 

回答

2

使用XQuery:

declare @x xml; 
set @x = '<doc> 
    <field name="a">foo</field> 
    <field name="b">bar</field> 
    <field name="c">fizz</field> 
    <field name="d">buzz</field> 
</doc>'; 

select @x.query('<doc>{//field[@name="a" or @name="c"]}</doc>'); 

在您的案件,不適用的XQuery來XML列。當然,根據您的具體情況調整XQuery,我的表達式只是一個假設您的標準爲@name='a' or @name='b'的示例。

+0

我修改了你給我添加一個UPDATE子句,它工作得很完美。謝謝! – stannius 2010-03-10 03:59:48

相關問題