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

Sql 更新和替换字符串的一部分,sql,sql-server,string,sql-server-2008,replace,Sql,Sql Server,String,Sql Server 2008,Replace,我有一个包含两列的表,ID和Value。我想更改第二列中某些字符串的一部分 表格示例: ID值 --------------------------------- 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\。我尝试了更新和替换: UPDATE dbo.xxx SET Value = REPLACE(Value, '%123%', '

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

表格示例:

ID值
---------------------------------
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\
。我尝试了
更新
替换

UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4
更新dbo.xxx
设置值=替换(值“%123%”,“”)

其中ID尝试删除
%
字符,如下所示

UPDATE dbo.xxx
SET Value = REPLACE(Value, '123', '')
WHERE ID <=4
更新dbo.xxx
设置值=替换(值'123','')

其中ID您不需要在
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%'
更新dbo.xxx
设置值=替换(值'123','')

其中ID有一个表,其中的日期代码是七个字符,类似于

"32-1000"
现在要替换所有

"32-"

必须运行的SQL查询是

Update Products Set Code = replace(Code, '32-', '14-') Where ...(Put your where statement in here)

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

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
UPDATE dbo.xxx SET Value=REPLACE(值,'123\',''),其中Id位于(1,2,3,4)

更新dbo.xxx SET Value=REPLACE(值,'123\',''),其中Id用于任何想要替换脚本的人

updatedbo.[TABLE_NAME]设置COLUMN_NAME=replace(COLUMN_NAME,'old_value','new_value'),其中COLUMN_NAME类似于%CONDITION%

查询:

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

替换为波斯语单词

UPDATE dbo.TblNews
SET keyWords = REPLACE(keyWords, '-', N'،')
帮助: dbo.TblNews—表名


关键字--fild name

它可以工作,但不能与ntext类型一起工作:(…>>Msg 8116,16级,状态1,第21行-参数数据类型ntext对于替换函数的参数1无效。我刚刚找到解决方案:)===>等等,
`有什么问题吗?这不是在转义
“`字符并使其不正确吗?这很有帮助如果列类型为Text或NText,则不起作用,请参阅此答案。请解释您的答案如何解决此问题,它将帮助每个人更清楚地理解您的解决方案,并供将来参考。它不会取代任何内容,因为通配符不被视为通配符,而被视为文本。请查看队列:我请求您在源代码周围添加一些上下文。只有代码的答案很难理解。如果你能在帖子中添加更多信息,这将有助于提问者和未来的读者。@RBT这就是为什么reddit有如此疯狂的迷因
UPDATE table_name
SET field_name = '0'
WHERE field_name IS Null
UPDATE tablename 
SET field_name = REPLACE(field_name , 'oldstring', 'newstring') 
WHERE field_name LIKE ('oldstring%');
UPDATE dbo.TblNews
SET keyWords = REPLACE(keyWords, '-', N'،')
UPDATE table_name
SET field_name = '0'
WHERE field_name IS Null