oracle中的替换函数replace和translate函数

1.translate
语法:TRANSLATE(char, from, to)
用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。
            若from比to字符串长,那么在from中比to中多出的字符将会被删除。
            三个参数中有一个是空,返回值也将是空值。
举例:SQL> select translate(‘abcdefga‘,‘abc‘,‘wo‘) 返回值 from dual;
            返回值
            -------
            wodefgw
分析:该语句要将‘abcdefga‘中的‘abc‘转换为‘wo‘,
            由于‘abc‘中‘a‘对应‘wo‘中的‘w‘,
            故将‘abcdefga‘中的‘a‘全部转换成‘w‘;
            而‘abc‘中‘b‘对应‘wo‘中的‘o‘,
            故将‘abcdefga‘中的‘b‘全部转换成‘o‘;
            ‘abc‘中的‘c‘在‘wo‘中没有与之对应的字符,
            故将‘abcdefga‘中的‘c‘全部删除;
            简单说来,就是将from中的字符转换为to中与之位置对应的字符,
            若to中找不到与之对应的字符,返回值中的该字符将会被删除。
            在实际的业务中,可以用来删除一些异常数据,
            比如表a中的一个字段t_no表示电话号码,
            而电话号码本身应该是一个由数字组成的字符串,
            为了删除那些含有非数字的异常数据,
            就用到了translate函数:
            SQL> delete from a,
                      where length(translate(trim(a.t_no),
                                            ‘0123456789‘ || a.t_no,
                                            ‘0123456789‘)) <> length(trim(a.t_no));

2.replace
语法:REPLACE(char, search_string,replacement_string)
用法:将char中的字符串search_string全部转换为字符串replacement_string。
举例:SQL> select REPLACE(‘fgsgswsgs‘, ‘fk‘ ,‘j‘) 返回值 from dual;
            返回值
            ---------
            fgsgswsgs
            SQL> select REPLACE(‘fgsgswsgs‘, ‘sg‘ ,‘eeerrrttt‘) 返回值 from dual;
            返回值
            -----------------------
            fgeeerrrtttsweeerrrttts
分析:第一个例子中由于‘fgsgswsgs‘中没有与‘fk‘匹配的字符串,
            故返回值仍然是‘fgsgswsgs‘;
            第二个例子中将‘fgsgswsgs‘中的字符串‘sg‘全部转换为‘eeerrrttt‘。
总结:综上所述,replace与translate都是替代函数,
         只不过replace针对的是字符串,而translate针对的是单个字符。

转自:https://www.cnblogs.com/xiaoqisfzh/p/5620890.html

原文地址:https://www.cnblogs.com/yixiu868/p/9327375.html

时间: 2024-10-10 19:03:53

oracle中的替换函数replace和translate函数的相关文章

oracle中取前几条数据&amp;TRUNC()函数

在oracle中查表中的前10条数据---- select * from test where rownum <= 10 ;  rownum是把SQL出来的结果进行编号,始终从1开始,常见的用途就是用来分页.类似于MYSQL和SQL SERVER的top. select * from (select a.*,rownum rn from test a) where rn >=10 and rn<=20; 输出10到20条语句.因为rownum本身只能用<=的比较方式,只有转成实例才

oracle中的替换函数简要分析

replace就是一般意义上的字符串替换 replace(c1,c2[,c3]) 在字符串c1中找到字符串c2,替换成c3.若c3为空,则在c1中删除所有c2. update jd set id = replace(id,'1','2'); 含义就是将jd表中id列中的所有1换为2. translate只是一个字符替换对应的一个字符 TRANSLATE ( expr , from_string , to_string ) 简单的说就是对expr内容,用to_string中的字符逐一替换from_

nyoj 113 字符串替换 (string中替换函数replace()和查找函数find())

字符串替换 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 编写一个程序实现将字符串中的所有"you"替换成"we" 输入 输入包含多行数据 每行数据是一个字符串,长度不超过1000 数据以EOF结束 输出 对于输入的每一行,输出替换后的字符串 样例输入 you are what you do 样例输出 we are what we do读一行的方法:用geiline(cin,s) 1 #include <iostream>

Oracle中查询一个字符串的长度的函数

Oracle取字符串长度的函数length()和lengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算string所占的字符长度:返回字符串的长度,单位是字符 对于单字节字符,lengthb()和length()是一样的 可以用lengthb('string')=length('string') 判断字符串是否含有中文

oracle中的函数

ORACLE中函数          Oracle已经内建了许多函数,不同的函数有不同的作用和用法,有的函数只能作用在一个记录行上,有的能够作用在多个记录行上,不同的函数可能处理不同的数据类型.常见的有两类,单行函数和分组函数 . 单行函数: 单行函数 分类 函数 功能 示例 字符函数 LPAD(<c1>,<i>[,<c2>]) 在字符串c1的左边添加字符串c2直到c1字符串的长度等于i. SELECT  LPAD('Hello!',9,1) leftpad,RPAD(

oracle中having的使用

在oracle中where关键字是无法和聚合函数一起使用的,having可以让我们筛选分组后的各组数据. 用法: SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_nameHAVING aggregate_function(column_name) operator value; 例子: SELECT count_dat

Oracle中的字符串类型及相关函数详解

1.概述 本文介绍String类型及相关的函数,基于当前最新的Oracle 12c 为基础作介绍. 下文将字符串简称为串. Oracle函数的工作方式有两种: 1.根据旧的对象创建新的对象--他们对原来的信息进行修改,如改变字母的大小写. 2.告诉用户有关的信息,如一个单词或句子中有几个字符. 后续会更新另外两种处理文本的方式:Oracle中的正则表达式 和 Oracle Text工具,等文章编辑完成,会在此处添加链接. Oracle中主要有两种字符串类型:CHAR和VARCHAR2,他们以字母

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

translate 是用来替换字符的函数 语法:  translate(char, from_str,to_str)   其中,char是待处理的字符串. from_str是按顺序排列若干个要被替换的字符集合,注意是字符集合而不是字符串. to_str 是按顺序对应from_str要被替换成的字符集合. 例如: translate('abcd','ab','AB') 执行上面语句后, 'abcd'中的'a' 被'A'替换,  'b'被'B'替换.所以返回"ABcd" 这样看上去跟rep

Oracle 中的replace函数的应用

replace 函数用法如下: replace('将要更改的字符串','被替换掉的字符串','替换字符串') oracle 中chr()函数 CHR() --将ASCII码转换为字符 语法CHR(number_code)示例select CHR(116) from dual;  --返回't' 几个常用的chr()函数:chr(9) --制表符chr(10) --换行符chr(13) --回车符chr(32) --空格符chr(34) --双引号“"” 例:replace('111<br/