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

Use*_*404 15 t-sql sql-server-2005

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

column value is : 'This text values contains this '&' this'.
Run Code Online (Sandbox Code Playgroud)

我必须'&'用'&' 代替.

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

我怎么做?PL.救命

gbn*_*gbn 31

这将取代整个专栏

REPLACE(MyColumn, '&', '&')
Run Code Online (Sandbox Code Playgroud)

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

REPLACE(REPLACE(MyColumn, '&', '&'), '>', '>')
Run Code Online (Sandbox Code Playgroud)

全部一起

UPDATE myTable
SET MyColumn = REPLACE(MyColumn, '&', '&')
WHERE MyColumn LIKE '%&%'
Run Code Online (Sandbox Code Playgroud)


mar*_*pet 8

UPDATE mytable
    SET mycol = REPLACE(mycol, N'&', N'&')
    WHERE mycol LIKE '%&%'
Run Code Online (Sandbox Code Playgroud)

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

例如:

<
Run Code Online (Sandbox Code Playgroud)

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

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


Nal*_*ran 5

通用语法:

UPDATE Table_Name 
SET Column_Name = REPLACE(Column_Name, 'Text_To_Be_Replaced', 'New_Text')
WHERE Column_Name LIKE '%Text_To_Be_Replaced%'
Run Code Online (Sandbox Code Playgroud)