translate函数用法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

translate函数用法
translate(string,from_str,to_str)
执行时,translate依次检查string中的每个字符是否在from_str中存在,如果不存在,那么这个string中的字符直接返回,如果存在,translate会记下这个字符在from_str中的位
置,然后用to_str的同样位置的字符代替string中的这个字符作业返回结果,
举例如下
SQL> select translate('ac','ab2','00') from dual;
结果:0c
分析结果如下:a在ab2中进行查找,位置是1,返回00中第一个字符0,然后c在ab2中进行查询,不存在则直接返回c, 所以结果是0c,这是最简单的,更个有空格或长度不一样
的!
如果from_str可以比to_str长,也就是from_str的字符数目可以比to_str多,在from_str 中多出来的字符称为"额外字符",也就是from_str中的位置在to_str中找不到的,比如
SQL> select translate('ac1','abc123','abc') from dual;
结果:ac
这里from_str中的1的位置是4,但是to_str的总长度是3,没有4,所以在from_STR 中的123都是额外字符
如果string中的字符在from_str的额外中出现,那么string中这些字符将在返回时被删除,
所以1虽然在abc123
中出现,但是abc中不存在第四个字符,所以删除返回值,结果为ac
举例如下
需要注意的是,to_str不能是NULL或者'',否则会返回空值,translate也不能用于CLOB,再说得简单一点,也就是
1、如果string中的字符如果在from_string中没有,那么返回时被保留
2、如果string中的字符是from_string中的"额外字符",那么返回时被删除
3、如果string中的字符在from_string中找到,且在to_string中有相应位置的字符,那
么返回时用to_string中的字符替换string中的字符
Classified as Internal。

相关文档
最新文档