星空网 > 软件开发 > 数据库

translate和replace的区别

 今天在oracle数据库中看到replace和translate的嵌套就有点蒙了,于是就上网看了一下,感觉豁然开朗:

今天遇到的问题如下:

replace(TRANSLATE(a.deal_msg,'0123456789',' '),' ','') AS deal_msg ,

这只是一条sql语句中的部分片段,什么意思呢?就是将a.deal_msg字段中出现的0和1替换为空格,当然也包括将01替换为两个空格,并将a.deal_msg中出现的23456789无论是连续还是单个数字均删除,然后再将替换后的字符串中的连续两个空格替换为一个空格,为什么会这样呢?先看看translate和replace的规则吧!

一、translate:

TRANSLATE(CHAR,FROM,TO),将char中出现的from替换为to中相应的字符,如果from的长度大于to的长度,那么将from大于to的长度之后的出现在char中的字符删除。举个简单的例子:

select  translate('anhw','ang','A') from dual;

查询结果:

---------

Ahw

结果分析:因为第三个参数的A和第二个参数的a位置对应,所以将第一个参数的a替换为A,又因为第二个参数的长度为3,第三个参数的长度为1,小于第二个参数2个长度,所以将出现在第一个参数中的n和g和ng删除,由于anhw中有n,故将n删除,因此结果为

Ahw.

二、replace

REPLACE(char, search_string,replacement_string),将char中出现的字符串search_string全部替换为replacement_string字符串。如果第二个参数在第一个参数中没有那么返回结果还是第一个参数的原字符串,举个简单的例子:

select replace('anhw','ang','A') from dual;

查询结果:

-----------

anhw

结果分析:由于ang在anhw没有对应的连续字符,因此不会进行替换,返回原字符串.

select replace('anhw','an','A') from dual;

查询结果:

-----------

Ahw

结果分析:由于an在anhw字符串中有对应的连续字符,因此将其替换为A,返回结果为Ahw.

 




原标题:translate和replace的区别

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

中国出口信用保险:https://www.goluckyvip.com/tag/49106.html
中国到俄罗斯物流:https://www.goluckyvip.com/tag/49107.html
中国到菲律宾海运专线:https://www.goluckyvip.com/tag/49108.html
中国到美国空派:https://www.goluckyvip.com/tag/49109.html
中国到日本fba:https://www.goluckyvip.com/tag/49110.html
中国到印度专线:https://www.goluckyvip.com/tag/49111.html
字节跳动辟谣!TikTok收紧美国开店政策为不实信息:https://www.goluckyvip.com/news/188212.html
2024北京庞各庄镇梨花节开幕时间是几号?:https://www.vstour.cn/a/365179.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流