今天在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的区别的更多相关文章

  1. window.location.href 和 window.location.replace 的区别

    window.location.href  和  window.location.replace 的区别 1.window.location.href=“url”:改变url地址: 2.window. ...

  2. Document.location.href和.replace的区别

    转自:https://www.cnblogs.com/GT_Andy/archive/2007/10/31/1922138.html 1 Document.location.href和.replace ...

  3. Mysql 语句 insert into 与 replace into 区别

    []insert into 与 replace into 区别 replace into 的运行与insert into 很相似.不同点: 若表中的一个旧记录与一个用于PRIMARY KEY 或 一个 ...

  4. react中路由跳转push与replace的区别

    路由跳转,replace / push 区别 push: a-b-c 可以回到上一级 例: this.props.history.push('路由地址') replace: a-b-c 回不到上一级 ...

  5. vue 中router.go;router.push和router.replace的区别

    vue 中router.go:router.push和router.replace的区别:https://blog.csdn.net/div_ma/article/details/79467165 t ...

  6. Oracle translate 函数的用法, 以及和replace的区别

     translate 是用来替换字符的函数 语法:  translate(char, from_str,to_str)   其中,char是待处理的字符串. from_str是按顺序排列若干个要被替换 ...

  7. Python 中translate()与replace()区别

    translate函数和replace函数一样,用于替换字符串中的某个部分,但是和replace不同,translate只处理单个字符,而且可以同时进行多个替换.在使用translate函数转换之前, ...

  8. window.location.href和window.location.replace的区别

    有3个html页面(.html, .html, .html). 进系统默认的是1.html ,当我进入2.html的时候, .html里面用window.location.replace(" ...

  9. memcache 中的add set 和replace的区别

    用过memcache的人都有一个疑惑,那就是memcache中为什么会有一个add方法.一个set方法.一个replace呢,这几个方法又有着什么样的区别呢,下边我们来分析下这几个方法的不同之处: m ...

随机推荐

  1. pb将datawindow数据导出EXCEL

    PB有dw有自带功能可以将数据导出成excel,但是head却是字段名称,这样不直观. 所见即所得的方式是,将dw保存成html然后将后缀名改成xls,但这样的方式还有些问题就是会错列,解决的方法是将 ...

  2. NLP中word2vec的CBOW模型和Skip-Gram模型

    参考:tensorflow_manual_cn.pdf     Page83 例子(数据集): the quick brown fox jumped over the lazy dog. (1)CBO ...

  3. ife2015-task2

    html部分: <!DOCTYPE html><html><head lang="en"> <meta charset="UTF ...

  4. 用python+selenium获取北上广深成五地PM2.5数据信息并按空气质量排序

    从http://www.pm25.com/shenzhen.html抓取北京,深圳,上海,广州,成都的pm2.5指数,并按照空气质量从优到差排序,保存在txt文档里 代码如下: #coding=utf ...

  5. cosine similarity

    Cosine similarity is a measure of similarity between two non zero vectors of an inner product space  ...

  6. 【转】Alchemy的使用和多项式批量计算的优化

    原文:http://www.cnblogs.com/flash3d/archive/2012/01/30/2332158.html ================================== ...

  7. Swift—下标脚本(Subscripts)

    下标脚本可以定义在类(Class).结构体(Struct).枚举(enumeration)这些目标中,可以认为是访问集合,列表或序列的快捷方式,使用下标脚本的索引设置和获取值,不需要再调用实例的特定的 ...

  8. 2016.12.01 搭建dendroid备忘

    在2014年的时候看了freebuf的那篇,感觉很6,2014年搭了就一遍成功了,事过两年,物是人非啊,2016搞了云,没事测试,搞了一遍死活不成功,第二天测试成功,过程逗比坎坷,没什么难的 //环境 ...

  9. 模块化开发--sea.js

    当你的网站开发越来越复杂的时候,会经常遇到一下问题吗?1.冲突2.性能3.依赖如果在多人开发或者是复杂的开发过程中会经常遇到这些问 题,就可以用模块化开发来解决.以上问题是如何产生的?1.冲突:如果你 ...

  10. thinkphp + 美图秀秀api 实现图片裁切上传,带数据库

    思路: 1.数据库 创建test2 创建表img,字段id,url,addtime 2.前台页: 1>我用的是bootstrap 引入必要的js,css 2>引入美图秀秀的js 3.后台: ...