PostgreSQL 教程: translate 函数

九月 23, 2023

PostgreSQL 的TRANSLATE()函数在一次操作中执行多个单字符、一对一的翻译。

语法

下面说明了 PostgreSQL 的TRANSLATE()函数的语法:

TRANSLATE(string, from, to)

参数

PostgreSQL 的TRANSLATE()函数接受三个参数:

1) string

string是要翻译的字符串。

2) from

from是第一个参数 (string) 中应替换的一组字符。

3) to

to是一组字符,用于替换字符串中的from

请注意,如果from长于toTRANSLATE()函数会删除from中出现的多余字符。

返回值

PostgreSQL 的TRANSLATE()函数返回一个字符串,其中一组字符中的字符被另一组字符替换。

示例

让我们看一些使用TRANSLATE()函数的示例,来了解它是如何工作的。

A) 简单的TRANSLATE()例子

请参见以下语句:

SELECT TRANSLATE('12345', '134', 'ax')

在这个例子中:

  • 字符串'12345'中的字符'1'被字符'a'替换,字符串'12345'中的字符'3'被字符'x'替换。
  • 由于字符串'134'的字符数多于字符串'ax',因此TRANSLATE()函数会删除字符串'134'中多余的字符,即从字符串'12345'中删除'4'

下面说明了结果:

 translate
-----------
 a2x5
(1 row)

B) 单字符替换

以下示例演示如何使用TRANSLATE()函数,将逗号分隔值列表中的逗号 (,) 替换为分号 (;)。

SELECT TRANSLATE('apple,orange,banana', ',', ';');

这是输出:

     translate
---------------------
 apple;orange;banana
(1 row)

C) 加密和解密消息

以下示例展示了如何使用TRANSLATE()函数来加密消息:

SELECT TRANSLATE('a secret message',
                 'abcdefghijklmnopqrstuvxyz', 
                 '0123456789acwrvyuiopkjhbq');

这是输出:

    translate
------------------
 0 o42i4p w4oo064
(1 row)

您还可以使用该函数解密消息'0 o42i4p w4oo064'

SELECT TRANSLATE('0 o42i4p w4oo064',
                     '0123456789acwrvyuiopkjhbq', 
                     'abcdefghijklmnopqrstuvxyz'); 

因此输出是:

    translate
------------------
 a secret message
(1 row)

在本教程中,您学习了如何使用 PostgreSQL 的TRANSLATE()函数,在单个操作中将一组中的字符与另一组中的字符一对一替换。