类别:

:doc:`/sql-reference/functions-string`(通用)

TRANSLATE

TRANSLATE() 函数替换字符串中的字符。具体来说,如果给定一个字符串、一组要替换的字符和要替换原始字符的字符,TRANSLATE() 就会进行指定的替换。

备注

此函数不能在语言之间进行翻译。请参阅用于在自然语言之间翻译文本的 TRANSLATE (SNOWFLAKE.CORTEX) 函数。

语法

TRANSLATE( <subject>, <sourceAlphabet>, <targetAlphabet> )
Copy

实参

subject

要转换的字符串表达式。如果 subject 中的某个字符不包含在 sourceAlphabet 中,则该字符会被添加到结果中,而不会进行任何转换。

sourceAlphabet

一个字符串,包含此函数修改的所有字符。每个字符都会转换为 targetAlphabet 中的相应字符,如果 targetAlphabet 中没有相应字符(即字符数少于 sourceAlphabet),则会在结果中省略。

targetAlphabet

一个字符串,包含用于替换 sourceAlphabet 中字符的所有字符。

如果 targetAlphabet 长于 sourceAlphabet,Snowflake 将报告错误 String '(target alphabet)' is too long and would be truncated.

排序规则详细信息

Arguments with collation specifications are currently not supported.

示例

将字符“ñ”转换为“n”。

SELECT TRANSLATE('peña','ñ','n');
+---------------------------+
| TRANSLATE('PEÑA','Ñ','N') |
|---------------------------|
| pena                      |
+---------------------------+
Copy

将“X”转换为“c”,将“Y”转换为“e”,将“Z”转换为“f”,并移除“❄”字符:

SELECT TRANSLATE('❄a❄bX❄dYZ❄','XYZ❄','cef');
+--------------------------------------+
| TRANSLATE('❄A❄BX❄DYZ❄','XYZ❄','CEF') |
|--------------------------------------|
| abcdef                               |
+--------------------------------------+
Copy
语言: 中文