Как обновить часть строки, используя функцию замены в TSQL? - PullRequest
15 голосов
/ 01 февраля 2011

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

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

Я должен заменить '&' на '&'.

  1. Сначала нужно найти запись с '&' в столбце (может бытьиспользуя подобное условие)
  2. А затем заменить только это слово его специальным символом

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

Ответы [ 4 ]

31 голосов
/ 01 февраля 2011

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

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

Вам придется вкладывать другие замены ...

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

Все вместе

UPDATE myTable
SET MyColumn = REPLACE(MyColumn, '&', '&')
WHERE MyColumn LIKE '%&%'
8 голосов
/ 01 февраля 2011
UPDATE mytable
    SET mycol = REPLACE(mycol, N'&', N'&')
    WHERE mycol LIKE '%&%'

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

Например:

<

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

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

5 голосов
/ 08 ноября 2012

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

UPDATE Table_Name 
SET Column_Name = REPLACE(Column_Name, 'Text_To_Be_Replaced', 'New_Text')
WHERE Column_Name LIKE '%Text_To_Be_Replaced%'
1 голос
/ 01 февраля 2011
Update TABLE
Set    field = replace(field, '&amp;', '&');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...