Замена множественному REPLACE или изящные решения

Замена множественному REPLACE или изящные решенияИногда встаёт задача почистить строки от лишних символов. Если это 1-2 символа, то мы легко и не принуждённо воспользуемся функцией REPLACE, но при необходимости заменить большее количество символов, такое решение не будет изящным.

 

 

Вот примерно так выглядит множественный REPLACE. Согласитесь, данное решение совсем не читаемо.

 

Тут нам на помощь могут придти следующие методы:

Метод 1 (функция):

Создаём функцию, куда будем передавать строку и необходимые символы для замены:

 

Вызываем функцию:

 

На выходе будет следующее:

 

Вывод: Данный метод не самый лучший, так как имеет проблемы с производительностью и со встраиваемостью в запрос.

 

Метод 2 (функция, встраиваемая в запрос):

Создаём функцию:

 

Создаём временную таблицу, напомняем её данными и встраиваем в запрос:

 

Вывод: Данный метод уже можно использовать при выборке из таблицы, но в теории, скорость работы данного метода ещё не оптимальный

 

Метод 3 (CTE — обобщённое табличное выражение):

Создаём временную таблицу и заполняем её данными. Именно данная таблица будет использоваться в CTE:

 

Создаём CTE (в нашем случае мы заменяем символы на пустое место, можно заменять на любое значение, для этого необходимо немного модифицировать CTE):

 

Делаем выбоорку и удаляем временную таблицу:

 

Вывод: Данный метод, на мой взгляд, менее удобный, но подразумевается, что работает быстрее.

 

Метод 4 (dll):

Так же можно написать dll, подключить её и с помощью программирования обработать все необходимые символы.

Вывод: Данный метод будет максимально быстрым.

 

Более подробно про CTE (обобщённое табличное выражение)

 

Запись опубликована в рубрике В помощь администратору с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Войти с помощью: