Summary: in this tutorial, you’ll learn how to use the PostgreSQL TRANSLATE()
function to replace all occurrences of characters in a set with corresponding characters from another set.
Overview of the PostgreSQL TRANSLATE function #
The TRANSLATE()
function allows you to replace all occurrences of a set of characters in a string with corresponding characters from another set of characters.
Here’s the syntax of the TRANSLATE()
function:
TRANSLATE(string, from_set, to_set)
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)
The TRANSLATE()
function takes three parameters:
string
: The input string to perform the character replacements.from_set
: A string that contains a set of characters to be replaced in the input string.to_set
: A string that contains replacement characters for the characters in thefrom_set
.
The TRANSLATE()
function returns a new string with all characters in the from_set
replaced by the corresponding characters in the to_set
.
If the length of the from_set
is greater than the length of the to_set
, the TRANSLATE()
function will remove the occurrences of the extra characters in from_set
.
Basic PostgreSQL TRANSLATE function #
The following statement uses the TRANSLATE()
function to replace characters in 'abc'
set with the corresponding characters in '12'
set:
SELECT TRANSLATE('abcdef', 'abc', '12') result;
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)
Output:
result
--------
12def
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)
In this example:
- The function
TRANSLATE()
replaces the character'a'
and'b'
in the'abcdef'
with the character'1'
and'2'
. - The string
'ABC'
has a length of3
, more than the length of the string'12'
, one character. Therefore, theTRANSLATE()
function removes the character'c'
in the'abcdef'
. - The result string is
'12def'
.
Performing a single character replacement #
The following example uses the TRANSLATE()
function to replace the character ','
by ';'
in a string:
SELECT
TRANSLATE('sql, postgres, postgresql', ',', ';') result;
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)
Output:
result
---------------------------
sql; postgres; postgresql
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)
Encrypting and decrypting messages #
The following example uses the TRANSLATE()
function to encrypt a message:
SELECT
TRANSLATE(
'pgtutorial.com',
'bplchjuyrkedmxfaiotgqvzns',
'tefmgrolbpuzxhkdqvynascji'
) encrypted_message;
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)
Output:
encrypted_message
-------------------
enyoyvbqdf.mvx
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)
In this example, the TRANSLATE()
function replaces characters from the first set with the characters from the second set in the string 'pgtutorial.com'
.
You can decrypt the message using the TRANSLATE
function with the same key as follows:
SELECT
TRANSLATE(
'enyoyvbqdf.mvx',
'tefmgrolbpuzxhkdqvynascji',
'bplchjuyrkedmxfaiotgqvzns'
) message;
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)
Output:
message
----------------
pgtutorial.com
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)
Summary #
- Use the
TRANSLATE()
function to replace all occurrences of a set of characters in a string with corresponding characters from another set of characters.