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