TRANSLATE函数与REPLACE函数用法简介

-- REPLACE与TRANSLATE的区别

TRANSLATE函数与REPLACE函数都有替换的作用,但是两个函数的用法就有些不同。具体如下:

-- 1.REPLACE(string,from,to)函数将string中的from替换成to,注意这个替换是比较严格的,

-- from要跟string中的字符并且顺序是一样的,否则就不作替换,看以下的例子:

-- example1:将'ABCDEFGH'中的'ABCD'替换成'12345678'因为'ABCD'能配置到'ABCDEFGH'里的字符

-- 结果为:12345678EFGH

SELECT REPLACE( 'ABCDEFGH','ABCD','12345678' ) FROM dual ;

-- 

-- example2:但如果将配置的字符串变成'ACD',就会因为无法配置上而完全没有替换

-- 结果为:ABCDEFGH

SELECT REPLACE( 'ABCDEFGH','ACD','12345678' ) FROM dual ;

-- 

-- 2.TRANSLATE(string,from,to)函数将string中的from字符逐个按to中的字符替换

-- 1>from字符和to的字符的数量相同,且from中不存在重复的字符,就替换相应的字符。

--   结果为1234567HI,'ABCDEFG'分别被'1234567'替换了

SELECT TRANSLATE( 'ABCDEFGHI' , 'M'||'ABCDEFG', 'M1234567' ) FROM dual;

-- 2>from字符和to的字符的数量相同,但from中存在重复的字符,这时候就以第一个出现的字符来替换第二个以后出现的该字符

--   这个例子中第二个'B'本应该被'3'来替换的,但是第一个'B'是由'2'替换,所以’B'都是以‘2’来替换

SELECT TRANSLATE( 'ABBDEFGHE' , 'M'||'ABBDEFG', 'M1234567' ) FROM dual;

-- 3>from字符比to的字符多,会以空串替换

-- 以下例子中,‘F’和'G'被空串替换了,所以最后得出的结果为‘12345H5’

SELECT TRANSLATE( 'ABCDEFHGE' , 'M'||'ABCDEFG', 'M12345' ) FROM dual;

-- 4>from字符串比to的字符少,这种情况下,只替换配置上的字符。

--  最后结果为’123456H75‘

SELECT TRANSLATE( 'ABCDEFHGE' , 'M'||'ABCDEFG', 'M1234567890' ) FROM dual;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值