`
langgufu
  • 浏览: 2293952 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle translate()详解+实例(替换字符函数)+rpad()填充函数

阅读更多

一、语法:
TRANSLATE(string,from_str,to_str)
二、目的
返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 NULL,并且如果TRANSLATE 中的任何参数为NULL,那么结果也是 NULL。

三、允许使用的位置
过程性语句和SQL语句。
四、示例
Sql代码

1. SELECT TRANSLATE('abcdefghij','abcdef','123456') FROM dual;
2. TRANSLATE (
3. --------------
4. 123456ghij
5.
6. SELECT TRANSLATE('abcdefghij','abcdefghij','123456') FROM dual;
7. TRANSL
8. ----------
9. 123456

语法:TRANSLATE(expr,from,to)

expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。

举例:

select translate('abcbbaadef','ba','#@') from dual (b将被#替代,a将被@替代)

select translate('abcbbaadef','bad','#@') from dual (b将被#替代,a将被@替代,d对应的值是空值,将被移走)

因此:结果依次为:@#c##@@def 和@#c##@@ef
语法:TRANSLATE(expr,from,to)

expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。

举例:

select translate('abcbbaadef','ba','#@') from dual (b将被#替代,a将被@替代)

select translate('abcbbaadef','bad','#@') from dual (b将被#替代,a将被@替代,d对应的值是空值,将被移走)

因此:结果依次为:@#c##@@def 和@#c##@@ef

示例如下:

 

示例一:将数字转换为9,其他的大写字母转换为X,然后返回。

 

SELECT TRANSLATE('2KRW229',
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') "License"
FROM DUAL

 

 

 

示例二:将数字保留,将其他的大写字母移除。

 

SELECT TRANSLATE('2KRW229',
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'0123456789') "Translate example"
FROM DUAL

 

 

 

罗勇补充示例如下:

 

示例三:示例证明是按照字符来处理,不是按照字节来处理,如果to_string的字符数比from_string多的话,多出的字符数似乎没有什么用处,也不会引发异常。

 

SELECT TRANSLATE('我是中国人,我爱中国', '中国', 'China') "Translate example"

 

FROM DUAL

结果: 我是Ch人,我爱Ch

 

 

 

示例四:下面的示例证明,如果from_string的字符数大于to_string,那么多出的字符会被移除,也就是ina三个字符会从char参数中移除,当然区分大小写啦。

 

SELECT TRANSLATE('I am Chinese, I love China', 'China', '中国') "Translate example"

 

FROM DUAL

结果:I m 中国ese, I love 中国

 

 

 

示例五:以下示例证明,如果第二个参数为空字符串,整个返回null。

 

SELECT TRANSLATE('2KRW229',
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'') "License"
FROM DUAL

结果:为空

 

 

 

 

 

示例六:在银行转帐时经常看见账户人只显示姓名的最后一个字,其余的用星号代替,我就用translate来做个类似的东西吧。

 

SELECT TRANSLATE('中国人',

 

substr('中国人',1,length('中国人') - 1),

 

rpad('*',length('中国人'),'*')) "License"

 

FROM DUAL

结果:**人

 

上面rpad()函数:

rpad函数从右边对字符串使用指定的字符进行填充   
rpad(string,padded_length,[pad_string])   
string 表示:被填充的字符串   
padded_length 表示:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,rpad函数将会把字符串截取成从左到右的n个字符;   
pad_string 是个可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,lpad函数将会在string的右边粘贴空格。   
例如:   
rpad('tech', 7); 将返回'tech '   
rpad('tech', 2); 将返回'te'   
rpad('tech', 8, '0'); 将返回'tech0000'   
rpad('tech on the net', 15, 'z'); 将返回 'tech on the net'   
rpad('tech on the net', 16, 'z'); 将返回 'tech on the netz'

SQL> select rpad('aa',5)||decode('bbb',null,' ',rpad('bbb',8))||rpad('cccc',12) from dual;
 
RPAD('AA',5)||DECODE('BBB',NUL
------------------------------
aa   bbb     cccc

分享到:
评论

相关推荐

    Oracle_Sql_中常用字符串处理函数

    Oracle Sql 提供了 RPAD() 和 LPAD() 函数,用于在字符串的右边或左边填充字符。 示例:SELECT RPAD('gao', 10, '*') FROM dual; -- 返回 *gao SELECT LPAD('gao', 10, '*') FROM dual; -- 返回 gao* 13. 字符串...

    Oracle 基础语句 函数大全(字符串函数

    ORACLE PL/SQL 字符串函数、数学函数、日期函数 --【字符串函数】 --字符串截取substr(字段名,起始点,个数) select Name,substr(Name,2,4),substr(Name,0,3),substr(Name,-2,3),substr(Name,-2,1) from t1; --字符...

    填充函数 Rpad Lpad 函数

    填充函数 Rpad Lpad 函数 自己实践过的,有实验过程的

    sqlserver实现Oracle中Lpad和Rpad函数

    sqlserver实现Oracle中Lpad和Rpad函数

    Lpad()和Rpad()函数的用法

    关于Lpad()和Rpad()两个函数的用法,在这里举例教大家使用。

    Oracle字符串处理函数

    Oracle字符串处理函数: 1.ASCII;2.CHR;3.CONCAT;4.INITCAP;5.INSTR(C1,C2,I,J);6.LENGTH;7.LOWER; 8.UPPER;9.RPAD和LPAD(粘贴字符);10.LTRIM和RTRIM......

    详解MySQL字符串函数TRIM()、填充函数LPAD()、RPAD()、字符串长度LENGTH()用法(三)

    文章目录一、删除空格函数TRIM()、LTRIM()、RTRIM()1、TRIM()2、LTRIM()3、RTRIM()二、填充函数LPAD()、RPAD()1、LPAD()2、RPAD()三、字符串长度LENGTH()、CHAR_LENGTH()1、LENGTH()2、CHAR_LENGTH() 前言:在实际的...

    oracle-10G函数大全.chm

    2,字符型函数(lower()、upper()、lpad()、rpad()、substr()、replace()...); 3,日期型函数(add_months()、last_day()、round()、next_day()、current_date()...); 4,转换函数(convert()、to_char()、to_date()...

    hive函数大全(中文版)

    12. 正则表达式替换函数:regexp_replace 26 13. 正则表达式解析函数:regexp_extract 26 14. URL解析函数:parse_url 26 15. json解析函数:get_json_object 27 16. 空格字符串函数:space 27 17. 重复字符串函数:...

    oracle函数大全.doc

    ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,...

    MYSQL,SQLSERVER,ORACLE常用的函数

    SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- ...

    Oracle最实用函数大全

    SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(’A’) A,ascii(’a’) a,ascii(’0’) zero,ascii(’ ’) space from dual; A A ZERO SPACE --------- --------- --------- --...

    oracle中左填充(lpad)和右填充(rpad)的介绍与用法

    在实际应用中经常会用到固定字段的长度,但往往有些数据不能达到规定的长度,这是就需要我们用其他的字符来填充, 在Oracle中有函数解决这一问题,下面话不多说了,来一起看看详细的介绍吧。 语法 LPAD(string,...

    MySQL函数大全

    13. RPAD(str,len,padstr):将字符串 str 右填充到 len 长度,使用 padstr 作为填充字符。 例如:SELECT RPAD('Hello', 10, '*'); // 结果为 'Hello*' 14. LEFT(str,len):返回字符串 str 的左侧 len 个字符。 ...

    oracle 函数大全.txt

    9.RPAD和LPAD(粘贴字符) ;10.LTRIM和RTRIM ;11.SUBSTR(string,start,count) ;12.REPLACE(’string’,’s1’,’s2’) ;13.SOUNDEX 返回一个与给定的字符串读音相同的字符串 ;14.TRIM(’s’ from ’string’) ;15.ABS ...

    asp函数库,函数列表

    '002.function rpad(desstr,padchar,lenint) 右填充 '003.function MakeRndPass(passlen,passtype) 生成随机密码 '004.function readFile(filepath) 读文件 '005.function WriteFile(filepath,fileContent) 写...

    Oracle生成不重复票号与LPAD,RPAD与NEXTVAL函数解析

    主要介绍了Oracle生成不重复票号与LPAD,RPAD与NEXTVAL函数解析,小编觉得还是挺不错的,这里分享给大家,供需要的朋友参考。

    ORACLE 九阴真经.chm

    RPAD(字段,总的大小,添充字符) 右填充即向左对齐 示例: select empno,rpad(sal,10) from emp LOWER(字符串) 将字符串全部变成小写; UPPER(字符串) 将字符串全部变成大写; INITCAP(字符串) 将字符串变成第一个字母...

    Oracle_Database_11g完全参考手册.part3/3

    7.5.5 再次使用填充函数 7.5.6 I.LOWER、UPPER和INITCAP 7.5.7 LENGTH 7.5.8 SUBSTR 7.5.9 INSTR 7.5.1 0ASCII和CHR 7.6 在orderby和where子句中使串函数 7.6.1 SOUNDEX 7.6.2 国际语言支持 7.6.3 正则表达式支持 ...

Global site tag (gtag.js) - Google Analytics