Oracle的Translate(expr,from_string,to_string)是字符串操作函数,实现from_string,to_string字符的一 一替换
1)典型示例:
select translate('abcdef','abc','123') from dual;
输出:
TRANSLATE('ABCDEF','ABC','123'
--------------------------------------------
123def
实现:将字符串‘abcdef’中的‘abc’替换为‘123’对应字符一 一替换(实现from_string与to_string以字符为单位,对应字符一 一替换),其它保持不变。
2)一 一替换示例:from_string对应to_string位置没有对应字符
select translate('abcdef','abc','12') from dual;
输出:
TRANSLATE('ABCDEF','ABC','12')
-------------------------------------------
12def
3)一 一替换示例:from_string比to_string字符少
select translate('abcdef','ab','123') from dual;
输出:
TRANSLATE('ABCDEF','AB','123')
-------------------------------------------
12cdef
4)一 一替换示例:from_string比to_string字符少
select translate('abcdef','#ab','123') from dual;
输出:
TRANSLATE('ABCDEF','#AB','123')
-------------------------------------------
23cdef
5)一 一替换示例:to_string为''串
select translate('abcdef','#ab','') from dual;
输出:
TRANSLATE('ABCDEF','#AB','')
-------------------------------------------
总之from_string,to_string对应字符替换,没有则不用替换,熟悉了上面的几个例子,就知道translate(expr,from_string,to_string)的正确用法了。