Как заменить% 20 ​​на пробел в определенном столбце? - PullRequest
0 голосов
/ 03 октября 2019

У меня есть таблица (фонд), в которой есть столбец с именем «fText». В этой таблице содержится около 700 тыс. Данных, а в некоторых случайных данных в середине строки находится «% 20». Тип столбца varchar(5000).

Например, в одной строке у меня есть 'Today%20is%2010/3/2019%20%20'. % 20 может находиться в любом месте столбца ftext. В любом случае можно ли очистить все данные 700 КБ с помощью оператора Update?

Мне нужен оператор обновления, который может изменить такой текст ниже. (Заменить все% 20 на пробел '')

Сегодня 10/3 / 2019

Ответы [ 2 ]

1 голос
/ 04 октября 2019

Проверьте это -

DECLARE @Sample VARCHAR(100)='Today%20is%2010/3/2019%20%20'
SELECT @Sample AS INPUT,LTRIM(RTRIM(REPLACE(@Sample,'%20',' ')))

Для сценария - используйте это

IF OBJECT_ID('TEMPDB..#Fund') IS NOT NULL 
    DROP TABLE #Fund

Create table #Fund 
(
ftext varchar(5000)
)

insert into #Fund(ftext) 
values 
('Today%20is%2010/3/2019%20%20')

--SELECT LTRIM(RTRIM(REPLACE(ftext,'%20',' '))) FROM #Fund

UPDATE #Fund SET ftext=LTRIM(RTRIM(REPLACE(ftext,'%20',' '))) WHERE ftext LIKE '%[%]20%'

SELECT ftext FROM #Fund
0 голосов
/ 04 октября 2019

@ forpas помог мне, и я получил этот ответ:)

Спасибо

Ответ:

begin transaction;
update ff_fundinfo
set fundtext=replace(fundtext,'%20',' ') where fundtext like '%[%]20%'
...