Как обновить часть строки, используя функцию replace в tsql?

Привет У меня есть столбец типа nvarchar (1000). Мне нужно избавиться от символов кодировки из этого столбца и заменить их специальными символами. Например:

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

Мне нужно заменить '&' на '&'.

  • Сначала нужно найти запись с '&' в столбце (может использоваться как условие)
  • И заменим это слово только специальным символом

Как мне это сделать? Pl. помощь

Ответы

Ответ 1

Это заменит во всем столбце

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

Вам нужно будет вложить другие замены...

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

Все вместе

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

Ответ 2

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

ИЗМЕНИТЬ Если вы решите заменить несколько html-объектов за один раз, порядок замены может изменить результаты.

Например:

<

становится &<, если вы замените первый &amp; на &, а затем &lt; на <, но результат будет &lt;, если вы сначала попытаетесь заменить &lt; на < и затем &amp; с &.

Если мне нужно сделать такую ​​замену, я обычно заменю &amp; последним по этой причине. Конечно, краевой кейс, а не то, что часто случается, но вы никогда не знаете...

Ответ 3

Общий синтаксис:

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

Ответ 4

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