TRANSLATE
Заменяет каждый символ из from на символ с той же позицией в to.
PostgreSQL 17.5
TRANSLATE(string, from, to)Параметры
- stringtext
- Исходная строка
- fromtext
- Символы, которые нужно заменить
- totext
- Символы для замены; символы from без пары удаляются
Возвращаемое значение
Строка (text) с заменёнными символами
Примеры
Замена символов по позициям
PostgreSQL 17.5
SELECT TRANSLATE('hello', 'el', 'ip') AS replaced;Только цифры номера телефона
PostgreSQL 17.5
SELECT TRANSLATE('+7 (912) 345-67-89', '()- ', '') AS digits;Гласные в верхнем регистре
PostgreSQL 17.5
SELECT member_name,
TRANSLATE(member_name, 'aeiou', 'AEIOU') AS vowels_up
FROM FamilyMembers;Подробности
В отличие от REPLACE, функция работает с отдельными символами, а не с подстрокой: TRANSLATE('hello', 'el', 'ip') заменяет e на i и l на p. Если to короче from, лишние символы from удаляются, поэтому с пустой to функция просто убирает символы.