Skip to content

PostgreSQL translate() 函数 ​

PostgreSQL translate() 函数根据指定的翻译关系来翻译一个指定的字符串。翻译关系是两个字符串中的字符的一一对应关系。

translate() 语法 ​

这里是 PostgreSQL translate() 函数的语法:

sql
translate(string, from_set, to_set)

参数 ​

  • string

    必需的。 要翻译的字符串。

  • from_set

    必需的。 一个字符串,它是要翻译的字符的集合。

  • to_set

    必需的。 一个字符串,它是要翻译成的字符集合。to_set 中的字符和 from_set 中的字符一一对应形成翻译关系。

返回值 ​

PostgreSQL translate() 函数返回一个翻译后的字符串,它将 string 中的所有在 from_set 指定的字符翻译成在 to_set 中对应的字符。

translate() 示例 ​

这个示例演示了如何使用 translate() 函数来翻译一个字符串:

sql
SELECT translate('xabcdef', 'abcd', '123');
bash
 translate
-----------
 x123ef

让我们看一下 translate('xabcdef', 'abcd', '123') 的执行过程:

  1. from_set 为 abcd,它告诉我们 a, b, c, d 这四个字符将要被翻译。
  2. to_set 为 123,from_set 和 to_set 建立如下的翻译关系:
    • a 将被翻译成 1
    • b 将被翻译成 2
    • c 将被翻译成 3
    • d 将被翻译成 '',即空字符串
  3. 字符串 'xabcdef' 翻译过程如下:
    1. x 不在 from_set 中,因此 x 被保留。
    2. a 在 from_set 中,因此 a 被翻译成 1。
    3. b 在 from_set 中,因此 b 被翻译成 2。
    4. c 在 from_set 中,因此 c 被翻译成 3。
    5. d 在 from_set 中,因此 d 被翻译成 ''。
    6. e 不在 from_set 中,因此 e 被保留。
    7. f 不在 from_set 中,因此 f 被保留。
  4. 翻译的结果是: x123ef。