提问者:小点点

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


我有一个包含两列的表,。我想更改第二列中某些字符串的一部分。

表示例:

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

现在不需要字符串中的了。我尝试了:

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

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


共3个答案

匿名用户

中不需要通配符--它只查找您为第二个参数输入的字符串,因此下面的操作应该是正确的:

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

(我还在replace中添加了,因为我认为您也不需要它)

匿名用户

尝试删除字符,如下所示

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

匿名用户

要使查询在不是每一行都需要更新的大表中运行得更快,还可以选择只更新将被修改的行:

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