0

次のようなXML列がテーブルにあります。

<word A="al"   B="h"   C="Ps" />
<word A="has"  B="es"  C="Pf" /> 
<word A="mom"  B="es"  C="Ph" />

このフィールドを次のように更新します。

<word A="al"   B="B1"   C="C1" /> 
<word A="has"  B="B2"  C="C1" /> 
<word A="mom"  B="B2"  C="C2" />

SQLServerの関数でやりたい。

ありがとう!

4

2 に答える 2

4

Mikaelが述べているように、更新の背後にあるロジックを説明する必要があります。ただし、上記の期待される出力の場合、次のように機能するはずです。

DECLARE @Words xml
SELECT @Words = '
<word A="al"   B="h"   C="Ps" />
<word A="has"  B="es"  C="Pf" />
<word A="mom"  B="es"  C="Ph" />'

SET @Words.modify('replace value of(/word[@A = "al"]/@B)[1] with "B1"')
SET @Words.modify('replace value of(/word[@A = "al"]/@C)[1] with "C1"')
SET @Words.modify('replace value of(/word[@A = "has"]/@B)[1] with "B2"')
SET @Words.modify('replace value of(/word[@A = "has"]/@C)[1] with "C1"')
SET @Words.modify('replace value of(/word[@A = "mom"]/@B)[1] with "B2"')
SET @Words.modify('replace value of(/word[@A = "mom"]/@C)[1] with "C2"')

SELECT @Words
于 2012-04-24T08:13:08.290 に答える
1

XQueryで「の値を置き換える」を試してください。
参照:http://msdn.microsoft.com/en-us/library/ms190675.aspx

于 2012-04-24T08:08:40.127 に答える