簡要比較:
replace 字符串級別的代替
如:SELECT REPLACE('accd','cd','ef') from dual; --> aefd
translate 字符級別的代替
如:select translate('acdd','cd','ef') from dual; -->aeff
replace('將要更改的字符串','被替換掉的字符串','替換字符串')
例:select replace ('111222333444','222','888') from dual;
輸出為 '111888333444'
分別詳解
replace:
語法:REPLACE(char,search_string[,replacement_string])
解釋:replace中,每個search_string都被replacement_string所代替
select replace('acdd','cd','ef') from dual; --> aefd
如果replacement_string為空或為null,那么所有的search_string都被移除
select replace('acdd','cd','') from dual; --> ad
如果search_string 為null,那么就返回原來的char
select replace('acdd','ef') from dual; -->acdd
select replace('acdd','','') from dual; -->acdd(也是兩者都為空的情況)
translate:
語法:TRANSLATE('char','from_string','to_string')
解釋:translate中,每個from_string中的字符被to_string中
舉例說明:
select translate('asd12fg','12','55') from dual