在更新中使用replace

时间:2012-10-29 15:02:47

标签: sql-server replace sql-update

我有一个带有Projects的表,在描述字段中我想用很多记录中的''替换Char(10)。

我可以手动替换记录,如下所示:

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项目,然后将ProjectID作为变量。

3 个答案:

答案 0 :(得分:0)

你不能简单地写

UPDATE tblProjects
SET    Description = Replace(Description, Char(10), ' ')

答案 1 :(得分:0)

你不能这样做吗

UPDATE tblProjects SET    

   Description =  Replace(Description, Char(10), ' ')

WHERE  ( Description LIKE '%' + Char(10) + '%' )
       AND ProjectID = 'XAXD'

你在2个地方重复这个条件

您还可以移除AND部分以更新所有char(10)

的项目
UPDATE tblProjects SET    

   Description =  Replace(Description, Char(10), ' ')

WHERE  ( Description LIKE '%' + 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

答案 2 :(得分:0)

我怀疑你需要嵌套选择。为什么不呢:

UPDATE tblProjects
SET    Description = Replace(Description, 'whatever', '')
WHERE  Description LIKE '%whatever%'
       AND ProjectID = XAXD