В этом руководстве вы узнаете, как использовать функцию SQL Server TRANSLATE() для замены нескольких отдельных символов, выполняя однозначный перевод за одну операцию.
Обзор функции SQL Server TRANSLATE()
Функция TRANSLATE() возвращает строку, в которой символы, указанные во втором аргументе, заменяются соответствующими символами из третьего аргумента.
Ниже показан синтаксис функции TRANSLATE():
TRANSLATE(input_string, from_characters, to_characters);
В этом синтаксисе:
- input_string — строка для поиска. Это может быть литеральная строка, символьное выражение или столбец.
- from_characters — строковое выражение, содержащее символы, которые следует заменить.
- to_characters — строковое выражение, содержащее заменяющие символы.
Если длины from_characters и to_characters различны, функция TRANSLATE() вернет ошибку.
Если какой-либо аргумент равен NULL, функция TRANSLATE() вернет NULL.
Примеры функции SQL Server TRANSLATE()
В следующем примере функция TRANSLATE() используется для замены квадратных скобок круглыми:
SELECT TRANSLATE('[408] 555 6789','[]','()') result;
Вот что получилось:
result -------------- (408) 555 6789
Этот оператор эквивалентен вызову функции REPLACE() дважды:
SELECT REPLACE(REPLACE('[408] 555 6789','[','('),']',')') result;
TRANSLATE() против REPLACE()
Поведение функции TRANSLATE() аналогично вызову нескольких функций REPLACE().
Однако функция TRANSLATE() не заменяет все вхождения символа на новый. В этом разница между функцией TRANSLATE() и вызовом нескольких функций REPLACE(): каждый вызов функции REPLACE() заменит все соответствующие символы.
В этом руководстве вы узнали, как использовать функцию SQL Server TRANSLATE() для замены нескольких односимвольных переводов один к одному за одну операцию.