替换SQL Server中整个表中的字符

时间:2017-04-13 08:16:52

标签: sql sql-server sql-server-2008

我想问你如何在整个表格中替换1个字符?

我想替换©的字符并将其更改为Š

我找到了:http://www.sqlteam.com/article/using-replace-in-an-update-statement

我读了很多工作人员,但我发现代码只替换整个表中的一个字符..我尝试添加列的名称到行,但这不起作用..

我有:

Column1  Column2 Column3 
 ©pple     ©og    ©ook 

我需要:

Column1  Column2 Column3 
 Špple     Šog    Šook 

感谢您的任何意见

4 个答案:

答案 0 :(得分:2)

您可以在UPDATE声明中一次更新多个字段。

UPDATE dbo.authors
SET    city = replace(city, 'Salt', 'Olympic')
     , city2 = replace(city2, 'Salt', 'Olympic')
     , city3 = replace(city3, 'Salt', 'Olympic')
     , ...

答案 1 :(得分:1)

如果Column1, Column2, Column3属于NVARCHAR类型,那么您必须在每个字符串文字前加N,例如:

UPDATE mytable
SET Column1 = REPLACE(Column1, N'©', N'Š'),
    Column2 = REPLACE(Column2, N'©', N'Š'),
    Column3 = REPLACE(Column3, N'©', N'Š')

Demo here

答案 2 :(得分:0)

Update table 
set col1=replace(col1,'©','Š' ),col2=replace(col2,'©','Š' ),col3=replace 
(col3,'©','Š' )
...colN=replace(colN,'©','Š' )

答案 3 :(得分:0)

在获得其他答案时,请回答您的特定问题。使用以下方法将使用更少的Tlog,并且将更有效,特别是如果您的列非常大(Varchar(max),Nvarchar(max)

 update table
 set col1.WRITE('Š',0,1),
     col2.WRITE('Š',0,1)   and so on