【发布时间】:2016-05-10 19:06:32
【问题描述】:
表a:
+------+------+------+--------------------------------------+
| col1 | col2 | col3 | Col4 |
+------+------+------+--------------------------------------+
| 1 | A | E |<?xml version .....<v> "OOOO"</v></vs>|
| 2 | B | F |<?xml version .....<v> "KKKK"</v></vs>|
| 3 | C | G |<?xml version .....<v> "LLLL"</v></vs>|
| 4 | B | E |<?xml version .....<v> "MMMM"</v></vs>|
| 5 | T | G |<?xml version .....<v> "NNNN"</v></vs>|
+------+------+------+--------------------------------------+
如何更新“”之间的 xml?
以下是我的尝试,它导致将 col4 更新为 NewValue 1 - x。基本上不保留xml格式。
UPDATE sf
SET sf.col4 =
(CASE col4
WHEN '%OOOO%'
THEN '%NewValue1%'
WHEN '%KKKK%'
THEN '%NewValue2%'
WHEN '%LLLL%'
THEN '%NewValue3%'
WHEN '%MMMM%'
THEN '%NewValue4%'
WHEN '%NNNN%'
THEN '%NewValue5%'
END)
预期结果:
+------+------+------+-------------------------------------------+
| col1 | col2 | col3 | Col4 |
+------+------+------+-------------------------------------------+
| 1 | A | E |<?xml version .....<v> "NewValue1"</v></vs>|
| 2 | B | F |<?xml version .....<v> "NewValue2"</v></vs>|
| 3 | C | G |<?xml version .....<v> "NewValue3"</v></vs>|
| 4 | B | E |<?xml version .....<v> "NewValue4"</v></vs>|
| 5 | T | G |<?xml version .....<v> "NewValue5"</v></vs>|
+------+------+------+-------------------------------------------+
Col4 是数据类型:nvarchar(MAX)
【问题讨论】:
-
'col4' 的数据类型是什么,预期结果是什么?
-
@RajaYuvi 我希望只有 xml col4 中“”之间的值会更新。比如 而不是
标签: sql sql-server xml sql-server-2008 tsql