小编典典

更新和替换字符串的一部分

all

我有一个有两列的表,ID并且Value. 我想更改第二列中某些字符串的一部分。

表格示例:

ID            Value
---------------------------------
1             c:\temp\123\abc\111
2             c:\temp\123\abc\222
3             c:\temp\123\abc\333
4             c:\temp\123\abc\444

现在不需要字符串中123\的。Value我试过UPDATEREPLACE

UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4

当我执行脚本时,SQL Server 不会报告错误,但它也不会更新任何内容。这是为什么?


阅读 85

收藏
2022-03-10

共1个答案

小编典典

您不需要通配符REPLACE- 它只会找到您为第二个参数输入的字符串,因此以下内容应该有效:

UPDATE dbo.xxx
SET Value = REPLACE(Value, '123', '')
WHERE ID <=4

如果要替换的列是 typetext或者ntext您需要将其转换为 nvarchar

UPDATE dbo.xxx
SET Value = REPLACE(CAST(Value as nVarchar(4000)), '123', '')
WHERE ID <=4
2022-03-10