Иллюстрированный самоучитель по PostgreSQL

Строковые функции

translate()

Синтаксис:

translate(s .f .r)

Функция translate() получает три аргумента s, f и г, относящихся к типу text. В строке s все символы, входящие в строку f, заменяются символами с тем же индексом из строки г. Возвращаемое значение относится к типу text.

Обратите внимание: функция заменяет не экземпляры всей строки f, а любые символы, входящие в эту строку. Если f содержит больше символов, чем г, то все символы f, не имеющие аналогов в г, просто удаляются из s (удобный способ удаления ненужных символов).

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

Пример:

booktown=# SELECT translated am an example?', '?', '!'):
translate
I am an example!
(1 row)

В следующем примере все вхождения символа "i" заменяются символом "w", а все вхождения символа "s" – символом "а". Лишний символ в конце строки "was" игнорируется.

Пример:

booktown=# SELECT translate('This is a mistake.', 'is', 'was');
translate
Thwa wa a mwatake.
(1 row)

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

Пример:

booktown=# SELECT title.
booktown-# translateCtitle, 'aeiouAEIOU', '') AS vowelless
booktown-# FROM books
booktown-f LIMIT 5;
title | vowelless
The Shining Th Shnng
Dune I Dn
2001: A Space Odyssey | 2001: Spc dyssy
The Cat In the Hat | Th Ct n th Ht
Bartholomew and the Oobleck Brthlmw nd th blck
(5 rows)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.