Oracle替换函数之replace和translate
一、replace函数
replace函数的作用是将源目标中指定字符串替换为相应字符,举例如下:
(1)将“jisuanji”字符串中的ji替换为1;
SQL> select replace('jisuanji','ji',1) from dual;
REPLACE('JISUANJI','JI',1)
--------------------------
1suan1
说明:首先在‘jisuanji’字符串中寻找‘ji’这个字符串,如果寻找到,则用1替换,否则保持 原样输出。
(2)将“jisuanji”字符串中的js替换为1;
SQL> select replace('jisuanji','js',1) from dual;
REPLACE('JISUANJI','JS',1)
--------------------------
jisuanji
说明:‘jisuanji’这个字符串中没有找到‘js’这个连续的字符,所以保持原样输出;
二、translate函数
(3)translate函数与replace函数的区别主要是,translate将指定字符串拆分成字符进行匹配并且每个字符与替换字符一一对应,举例如下:
将jisuanji”字符串中的ji替换为1;
SQL> select translate('jisuanji','ji',1) from dual;
TRANSLATE('JISUANJI','JI',1)
----------------------------
1suan1
说明:上面的例子中,sql将‘ji’拆分成‘j’‘i’这两个字符,然后j与1进行匹配,但是i没有匹配到替换字符,所以为空,效果就是抹掉,最终得到的效果就是1suan1,这与replace同样的例子效果一样,但是原理不一样,这点需要注意。
SQL> select translate('jisuanji','js',12) from dual;
TRANSLATE('JISUANJI','JS',12)
-----------------------------
1i2uan1i
上面这里例子揭示了translate函数的原理。
总结:通过对replace和translate函数对比分析并结合个人使用经验,认为translate函数操作灵活,推荐使用translate函数代替replace函数。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341