2011-01-31 94 views
15

嗨 我有一列nvarchar(1000)类型。我需要摆脱该列中的编码字符,并用它们的特殊字符替换它们。 例如:如何在tsql中使用replace函数更新字符串的一部分?

column value is : 'This text values contains this '&' this'. 

我不得不更换'&'与 '&'。

  1. 首先要找到其中列有'&'记录(可使用类似条件)
  2. 然后用它的特殊字符替换只有这个词

我该怎么做呢? PL。帮助

回答

30

这将在整列

REPLACE(MyColumn, '&', '&') 

你必须巢其他替代品取代...

REPLACE(REPLACE(MyColumn, '&', '&'), '>', '>') 

总之

UPDATE myTable 
SET MyColumn = REPLACE(MyColumn, '&', '&') 
WHERE MyColumn LIKE '%&%' 
+0

@gbn:用update语句? – User13839404 2011-01-31 21:09:31

+0

@Jango:对不起,只是看到了字符串替换问题 – gbn 2011-01-31 21:12:19

1
Update TABLE 
Set field = replace(field, '&', '&'); 
8
UPDATE mytable 
    SET mycol = REPLACE(mycol, N'&', N'&') 
    WHERE mycol LIKE '%&%' 

编辑 如果您决定一次性替换多个html实体,替换顺序可能会改变结果。

例如:

< 

如果更换第一&amp;&,然后用<&lt;,但结果将是&lt;,如果你第一次尝试更换&lt;<,然后用&&amp;变得&<

如果我必须做那种替换,我通常会替换&amp;最后因为这个原因。当然,边缘的情况下,并没有什么这经常发生,但你永远不知道...

5

通用语法:

UPDATE Table_Name 
SET Column_Name = REPLACE(Column_Name, 'Text_To_Be_Replaced', 'New_Text') 
WHERE Column_Name LIKE '%Text_To_Be_Replaced%' 
相关问题