Sql server 在更新中使用替换
我有一个包含项目的表,在description字段中,我想在很多记录中将Char(10)替换为“” 我可以手动将其逐个记录替换,如下所示:Sql server 在更新中使用替换,sql-server,replace,sql-update,Sql Server,Replace,Sql Update,我有一个包含项目的表,在description字段中,我想在很多记录中将Char(10)替换为“” 我可以手动将其逐个记录替换,如下所示: UPDATE tblProjects SET Description = (SELECT Replace(Description, Char(10), ' ') FROM tblProjects WHERE ( Description LIKE '%' + C
UPDATE tblProjects
SET Description = (SELECT Replace(Description, Char(10), ' ')
FROM tblProjects
WHERE ( Description LIKE '%' + Char(10) + '%' )
AND ProjectID = XAXD)
WHERE ( Description LIKE '%' + Char(10) + '%' )
AND ProjectID = XAXD
但是我想要一个更通用的解决方案,比如foreach项目,然后将projectd作为变量。你不能简单地编写吗
UPDATE tblProjects
SET Description = Replace(Description, Char(10), ' ')
你就不能这么做吗
UPDATE tblProjects SET
Description = Replace(Description, Char(10), ' ')
WHERE ( Description LIKE '%' + Char(10) + '%' )
AND ProjectID = 'XAXD'
你在两个地方重复了这个条件
您还可以删除和
部分,以更新所有具有char(10)
或者使用参数@ProjectID
代替“XAXD”
Declare @ProjectID varchar(50)
SET @ProjectID = 'XAXD'
UPDATE tblProjects SET
Description = Replace(Description, Char(10), ' ')
WHERE ( Description LIKE '%' + Char(10) + '%' ) AND
ProjectID = @ProjectID
我怀疑你是否需要这个选择。为什么不只是:
UPDATE tblProjects
SET Description = Replace(Description, 'whatever', '')
WHERE Description LIKE '%whatever%'
AND ProjectID = XAXD
我认为“AND projectd=XAXD”是“手动逐个记录”部分的一部分:/感谢您的帮助,我试图使我比原来更复杂。您是对的,这样做:UPDATE tblProjects SET Description=Replace(Description,CHAR(10),“”),其中要替换的字符串是静态的,比如“%”+CHAR(10)+“%”?或者以某种方式取决于项目id?我的想法是,对于每个记录,我必须获得描述并将字符(10)替换为“”,然后更新相同的描述。对于每个项目,我有181个项目描述,其中我需要将描述中的字符(10)替换为“”。什么是
Char(10)
??它是静态文本吗?更新tblProjects SET Description=Replace(Description,CHAR(10),“”),其中像“%”+CHAR(10)+“%”CHAR(10)这样的描述是换行的
UPDATE tblProjects
SET Description = Replace(Description, 'whatever', '')
WHERE Description LIKE '%whatever%'
AND ProjectID = XAXD