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函数。

 

原文出处:http://blog.51cto.com/dushuai/1568238

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值