Строковые функции
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)