一、语法:
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 提供了 RPAD() 和 LPAD() 函数,用于在字符串的右边或左边填充字符。 示例:SELECT RPAD('gao', 10, '*') FROM dual; -- 返回 *gao SELECT LPAD('gao', 10, '*') FROM dual; -- 返回 gao* 13. 字符串...
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 函数 自己实践过的,有实验过程的
sqlserver实现Oracle中Lpad和Rpad函数
关于Lpad()和Rpad()两个函数的用法,在这里举例教大家使用。
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......
文章目录一、删除空格函数TRIM()、LTRIM()、RTRIM()1、TRIM()2、LTRIM()3、RTRIM()二、填充函数LPAD()、RPAD()1、LPAD()2、RPAD()三、字符串长度LENGTH()、CHAR_LENGTH()1、LENGTH()2、CHAR_LENGTH() 前言:在实际的...
2,字符型函数(lower()、upper()、lpad()、rpad()、substr()、replace()...); 3,日期型函数(add_months()、last_day()、round()、next_day()、current_date()...); 4,转换函数(convert()、to_char()、to_date()...
12. 正则表达式替换函数:regexp_replace 26 13. 正则表达式解析函数:regexp_extract 26 14. URL解析函数:parse_url 26 15. json解析函数:get_json_object 27 16. 空格字符串函数:space 27 17. 重复字符串函数:...
ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,...
SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- ...
SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(’A’) A,ascii(’a’) a,ascii(’0’) zero,ascii(’ ’) space from dual; A A ZERO SPACE --------- --------- --------- --...
在实际应用中经常会用到固定字段的长度,但往往有些数据不能达到规定的长度,这是就需要我们用其他的字符来填充, 在Oracle中有函数解决这一问题,下面话不多说了,来一起看看详细的介绍吧。 语法 LPAD(string,...
13. RPAD(str,len,padstr):将字符串 str 右填充到 len 长度,使用 padstr 作为填充字符。 例如:SELECT RPAD('Hello', 10, '*'); // 结果为 'Hello*' 14. LEFT(str,len):返回字符串 str 的左侧 len 个字符。 ...
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 ...
'002.function rpad(desstr,padchar,lenint) 右填充 '003.function MakeRndPass(passlen,passtype) 生成随机密码 '004.function readFile(filepath) 读文件 '005.function WriteFile(filepath,fileContent) 写...
主要介绍了Oracle生成不重复票号与LPAD,RPAD与NEXTVAL函数解析,小编觉得还是挺不错的,这里分享给大家,供需要的朋友参考。
RPAD(字段,总的大小,添充字符) 右填充即向左对齐 示例: select empno,rpad(sal,10) from emp LOWER(字符串) 将字符串全部变成小写; UPPER(字符串) 将字符串全部变成大写; INITCAP(字符串) 将字符串变成第一个字母...
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 正则表达式支持 ...