Замена указанных символов строки другими символами.
::=
<Строка>
, <подстрока1>
, <подстрока2>
должны иметь типы данных: CHAR
, VARCHAR
, NCHAR
, NCHAR VARYING
.
Типы данных <строки>
, <подстроки1>
и <подстроки2>
должны быть приводимыми.
Длина <подстроки1>
, <подстроки2>
не должна быть более 4000.
Окончательная длина <строки>
не должна быть более 4000.
<Подстрока1>
задает набор заменяемых в <строке>
символов.
<Подстрока2>
задает новые значения заменяемых символов.
Символы пробела, заданные в конце символьных выражений <строка>
, <подстрока1>
, <подстрока2>
усекаются. Чтобы они принимались во внимание, необходимо использовать явное преобразование типа данных или не задавать пробелы в конце этих выражений.
Например, при выполнении данного запроса символ пробела не учитывается:
select translate('111-111 22','- ',''); | 111111 22 |
а в этих запросах – учитывается:
select translate('111-111 22',' -',''); | 11111122 |
select translate('111-111 22',cast '- ' as varchar,''); | 11111122 |
Все аргументы функции могут быть заданы <SQL-параметром>
, который должен
содержать спецификацию типа данных параметра.
select translate(? (char(20)), ? (char(2)), ? (char(2))); 11 22 311 55 12 ab |aa bb 3aa 55 |
Исходная <строка>
, в которой каждый символ из <подстроки1>
заменен на соответствующий ему символ из <подстроки2>
. Например, если <подстрока1>='ac'
, а <подстрока2>='12'
, то каждый символ 'a' в исходной <строке>
будет заменён на '1', а каждый символ 'c' в исходной <строке>
– на '2'.
Если <подстрока1>
длиннее <подстроки 2>
, то все ее лишние символы удаляются из исходной <строки>
, поскольку для них нет соответствующих символов в <подстроке2>
.
Результирующая строка возвращается без концевых пробелов.
Если один из аргументов имеет значение NULL, результат будет NULL.
Если аргумент <строка>
имеет нулевую длину, возвращается пустая строка.
select translate('','1','2');
Функция TRANSLATE
теперь утраивает длину входного аргумента для записи
ответа только для MBCS кодировок.
Замена всех прописных букв строчными.
select translate(make,make, lower(make)) from auto; ford alpine …
Исправление текста на кириллице, ошибочно набранного в латинице.
select translate('ошибка ddjlf', 'qwertyuiop[]asdfghjkl;"zxcvbnm,.', 'йцукенгшщзхъфывапролджэячсмитьбю'); |ошибка ввода |
Удаление всех гласных из текста.
select translate(make, 'EYUIOAJ','') from auto; FRD LPN MRCN MTRS MSRT …
Функция translate является расширением функции replace.
Запрос
select translate('abcdaefbgh', 'ab','12'); 12cd1ef2gh аналогичен запросу select replace (replace('abcdaefbgh', 'a','1'), 'b','2'); 12cd1ef2gh