Как обновить часть строки, используя функцию 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-объектов за один раз, порядок замены может изменить результаты.
Например:
<
становится &<
, если вы замените первый &
на &
, а затем <
на <
, но результат будет <
, если вы сначала попытаетесь заменить <
на <
и затем &
с &
.
Если мне нужно сделать такую замену, я обычно заменю &
последним по этой причине. Конечно, краевой кейс, а не то, что часто случается, но вы никогда не знаете...
Ответ 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, '&', '&');