Функция TRANSLATE SQL Server

В этом руководстве вы узнаете, как использовать функцию 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() для замены нескольких односимвольных переводов один к одному за одну операцию.

Мирослав С.

Автор статей, ИБ-специалист