Как заменить символы на основе таблицы замены? - PullRequest
0 голосов
/ 14 июня 2019

У меня есть таблица со следующими столбцами:

find char(1)
replace varchar(2)

И некоторые данные в нем:

find replace
------------
ä    ae
ö    oe
ü    ue
ß    ss

У меня есть хранимая процедура, которая генерирует содержимое XML (около 30 МБ) на основе 60000+ строк. Содержание основано на различных таблицах, и, например, одна таблица содержит имя клиента. Этот столбец может содержать один или несколько заменяемых символов выше.

Как я могу написать функцию, которая заменяет символы строки (переданные в качестве параметра) с помощью приведенной выше таблицы?

1 Ответ

1 голос
/ 14 июня 2019

Этот следующий скрипт поможет вам достичь желаемого результата. Пожалуйста, настройте имена таблиц и столбцов в соответствии с таблицей поиска -

DECLARE @LookUp TABLE(
    find VARCHAR(MAX),
    replace VARCHAR(MAX)
)
INSERT INTO @LookUp (find,replace) 
VALUES
('ä','ae'),
('ö','oe'),
('ü','ue'),
('ß','ss')


DECLARE @testVal VARCHAR(100)
SET @testVal = 'ä Test ö Test2 ü Test3 ß Test4'
SELECT @testVal = REPLACE(@testVal, find, replace) FROM (SELECT find,replace FROM  @LookUp) list
SELECT @testVal;
...