如何使用sql中的replace函数更新字符串的一部分?

时间:2011-01-31 21:06:03

标签: sql-server-2005 tsql

您好 我有一个nvarchar(1000)类型的列。我需要摆脱该列中的编码字符并用它们的特殊字符替换它们。 例如:

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

我必须将'&'替换为'&'。

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

    我该怎么做? PL。帮助

4 个答案:

答案 0 :(得分:31)

这将替换整个列

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

你必须嵌套其他替代品......

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

一起

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

答案 1 :(得分:8)

UPDATE mytable
    SET mycol = REPLACE(mycol, N'&', N'&')
    WHERE mycol LIKE '%&%'

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

例如:

<
如果您先将&<替换为&amp;,然后将&替换为&lt;

将变为<,但如果您将&lt;,则结果为&lt;首先尝试将<替换为&amp;,然后&替换为&amp;

如果我必须做那种替换,我通常会因为这个原因替换{{1}}。当然,是一个边缘案例,而不是经常发生的事情,但你永远不会知道......

答案 2 :(得分:5)

通用语法:

UPDATE Table_Name 
SET Column_Name = REPLACE(Column_Name, 'Text_To_Be_Replaced', 'New_Text')
WHERE Column_Name LIKE '%Text_To_Be_Replaced%'

答案 3 :(得分:1)

Update TABLE
Set    field = replace(field, '&amp;', '&');