更新和replacestring的一部分

我有一个两列, IDValue 。 我想更改第二列中的一些string的一部分。

表格的例子:

 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 

现在Valuestring中的123\是不需要的。 我试过UPDATEREPLACE

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

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

REPLACE你不需要通配符 – 它只是find你为第二个参数input的string,所以下面的代码应该可以工作:

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

(我还在replace中添加了\ ,因为我认为你不需要这个)

尝试删除% chars如下

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

为了使查询在不是每行都需要更新的大表中运行得更快 ,您还可以select仅更新将被修改的行:

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

你有一个表,你有date代码是七个字符的东西

 "32-1000" 

现在你想要全部replace

 "32-" 

 "14-" 

你必须运行的SQL查询是

 Update Products Set Code = replace(Code, '32-', '14-') Where ...(Put your where statement in here) 
 CREATE TABLE tbl_PersonalDetail (ID INT IDENTITY ,[Date] nvarchar(20), Name nvarchar(20), GenderID int); INSERT INTO Tbl_PersonalDetail VALUES(N'18-4-2015', N'Monay', 2), (N'31-3-2015', N'Monay', 2), (N'28-12-2015', N'Monay', 2), (N'19-4-2015', N'Monay', 2) DECLARE @Date Nvarchar(200) SET @Date = (SELECT [Date] FROM Tbl_PersonalDetail WHERE ID = 2) Update Tbl_PersonalDetail SET [Date] = (REPLACE(@Date , '-','/')) WHERE ID = 2 

你应该使用下面的更新查询

 UPDATE dbo.xxx SET Value=REPLACE(Value,'123\','') WHERE Id IN(1, 2, 3, 4) UPDATE dbo.xxx SET Value=REPLACE(Value,'123\','') WHERE Id <= 4 

上述任何一个查询都可以工作。

对于任何人想要replace你的脚本。

 > update dbo.[TABLE_NAME] set COLUMN_NAME= replace(COLUMN_NAME, 'old_value', 'new_value') where COLUMN_NAME like %CONDITION% 

查询:

 UPDATE tablename SET field_name = REPLACE(field_name , 'oldstring', 'newstring') WHERE field_name LIKE ('oldstring%');