translate函数的用法
translate(string,from_str,to_str)
??? 執(zhí)行時(shí),translate依次檢查string中的每個(gè)字符是否在from_str中存在,如果不存在,那么這個(gè)string中的字符直接返回,如果存在,translate會(huì)記下這個(gè)字符在from_str中的位置,然后用to_str的同樣位置的字符代替string中的這個(gè)字符作業(yè)返回結(jié)果,
舉例如下
???SQL> select translate('ac','ab2','00') from dual;
???結(jié)果:0c
???分析結(jié)果如下:a在ab2中進(jìn)行查找,位置是1,返回00中第一個(gè)字符0,然后c在ab2中進(jìn)行查詢,不存在則直接返回c, 所以結(jié)果是0c,這是最簡(jiǎn)單的,更個(gè)有空格或長(zhǎng)度不一樣的!
???如果from_str可以比to_str長(zhǎng),也就是from_str的字符數(shù)目可以比to_str多,在from_str中多出來(lái)的字符稱為"額外字符",也就是from_str中的位置在to_str中找不到的,比如
?? SQL> select translate('ac1','abc123','abc') from dual;
?? 結(jié)果:ac
?? 這里from_str中的1的位置是4,但是to_str的總長(zhǎng)度是3,沒(méi)有4,所以在from_STR中的123都是額外字符
如果string中的字符在from_str的額外中出現(xiàn),那么string中這些字符將在返回時(shí)被刪除,所以1雖然在abc123
中出現(xiàn),但是abc中不存在第四個(gè)字符,所以刪除返回值,結(jié)果為ac
舉例如下
?? 需要注意的是,to_str不能是NULL或者'',否則會(huì)返回空值,translate也不能用于CLOB,再說(shuō)得簡(jiǎn)單一點(diǎn),也就是
?? 1、如果string中的字符如果在from_string中沒(méi)有,那么返回時(shí)被保留
?? 2、如果string中的字符是from_string中的"額外字符",那么返回時(shí)被刪除
?? 3、如果string中的字符在from_string中找到,且在to_string中有相應(yīng)位置的字符,那么返回時(shí)用to_string中的字符替換string中的字符
select translate('ab23cd1', '.0123456789' || 'ab23cd1', '.0123456789')from dual
總結(jié)
以上是生活随笔為你收集整理的translate函数的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JAVA使用POI导出设置列格式为文本格
- 下一篇: 安全世界里,你不可不知的七名全球顶级白帽