TRANSLATE
📄字数 767
👁️阅读量 加载中...
功能描述
依次查找 expr
中的每个字符是否在 from_string
中存在,如果不存在,那么返回 expr
相应位置的字符;如果存在,将用 to_string
中与 from_string
同样位置的字符替换 expr
中的字符。
如果字符在 from_string
中多次出现,则使用与第一次出现对应的 to_string
映射的字符。
语法格式
sql
TRANSLATE(expr, from_string, to_string)
输入参数
expr
:要处理的源字符串,VARCHAR
类型,或能隐式转换为VARCHAR
类型的其他类型。from_string
:包含要被替换的字符串,VARCHAR
类型,或能隐式转换为VARCHAR
类型的其他类型,from_string
中的每个字符都会与to_string
中相应位置的字符进行一对一替换。to_string
:包含替换的字符串,VARCHAR
类型,或能隐式转换为VARCHAR
类型的其他类型,如果to_string
的长度小于from_string
,则from_string
中多余的字符如果出现在expr
中将被删除。
输出结果
返回 VARCHAR
类型,任意输入参数为空字符串或为 NULL
时,输出结果为 NULL
。
示例
示例将字符串 ABCDEFGH
中的 ZACDEF
逐一替换为 12345678
。替换规则如下:
- 字符
A
、C
、D
、E
和F
分别被替换为2
、3
、4
、5
和6
。 - 字符
B
、G
和H
没有在ZACDEF
中找到匹配项,因此它们保持不变。
sql
SQL> SELECT TRANSLATE('ABCDEFGH','ZACDEF','12345678') FROM dual;
+-------------------------------------------+
| TRANSLATE('ABCDEFGH','ZACDEF','12345678') |
+-------------------------------------------+
| 2B3456GH |
+-------------------------------------------+