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 |
+-------------------------------------------+