`
langgufu
  • 浏览: 2296483 次
  • 性别: 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+110个常用函数

    9. RPAD和LPAD函数:RPAD在字符串右侧填充指定字符以达到指定长度,LPAD在左侧填充。例如,`RPAD('gao', 10, '*')`返回'gao*****',而`LPAD('gao', 17, '*')`返回'*******gao*******'。 10. LTRIM和RTRIM函数:...

    oracle+110个常用函数.doc

    9. RPAD和LPAD函数:这两个函数用于在字符串的右侧(RPAD)或左侧(LPAD)填充指定数量的字符。如果原始字符串长度不足,它们会用指定的字符填充到指定的总长度。例如,'gao'经过LPAD和RPAD处理后,在左右两侧各填充...

    ORACLE常用数值函数、转换函数、字符串函数介绍

    Oracle数据库系统提供了丰富的函数库,包括数值函数、转换函数和字符串函数,这些函数极大地扩展了SQL语言的功能,方便了数据库操作。以下是对标题和描述中提及的一些重要函数的详细解释: 1. **数值函数** - **...

    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; --字符...

    oracle日期函数字符函数聚合函数

    Oracle数据库中的日期函数、字符函数和聚合函数是数据库操作中常用的功能,对于数据处理和查询至关重要。以下将详细解释这些函数的用法和示例。 日期函数主要用于处理和操作日期数据,以下是一些主要的Oracle日期...

    常用oracle字符串操作函数

    这两个函数用于在字符串左侧或右侧填充特定字符以达到指定长度。例如,`LPAD('hello', 10, '-')` 返回 '--hello-----',`RPAD('world', 10, '*')` 返回 'world****'. 8. **CONCAT()** 函数: CONCAT() 用于连接两...

    sqlserver实现Oracle中Lpad和Rpad函数

    sqlserver实现Oracle中Lpad和Rpad函数

    oracle常用字符函数

    LPAD和RPAD函数用于在字符串的左侧或右侧填充特定字符,以达到指定的总长度。例如,如果我们想在FAMILY_NAME左侧填充"$"符号,使其长度达到10,可以这样做: ```sql SELECT lpad(FAMILY_NAME, 10, '$') "Padded ...

    填充函数 Rpad Lpad 函数

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

    oracle函数大全,oracle函数大全,

    除此之外,Oracle还有其他很多功能强大的函数,如TRIM(同时去除字符串两侧的指定字符)、TRANSLATE(替换字符串中的一组字符为另一组字符)、REVERSE(反转字符串)等。这些函数在SQL查询和数据处理中发挥着重要...

    oracle函数大全-数字-字符-日期-聚合函数

    `LPAD()`和`RPAD()`函数分别用于在字符串左侧和右侧填充指定字符以达到指定长度。 日期函数是Oracle中的另一大亮点,它们在处理日期和时间数据时不可或缺。`SYSDATE`返回当前系统的日期和时间,`ADD_MONTHS()`可以...

    oracle函数字符处理

    6. **LPAD()** 和 **RPAD()** 函数:在字符串左侧或右侧填充字符。`LPAD(string, length, pad_string)` 在左侧填充pad_string直到达到length,而`RPAD()`则在右侧填充。 7. **LENGTH()** 函数:计算字符串的长度。...

    oralce字符函数

    Oracle字符函数是数据库管理系统Oracle中处理字符串数据的重要工具,它们用于创建、操作和转换字符串。在Oracle中,字符串函数广泛应用于数据查询、分析和报告。以下是一些常用的Oracle字符串函数的详细说明: 1. ...

    ORACLE内置函数大全

    8. RPAD和LPAD函数:这两个函数用于在字符串的右侧或左侧填充特定字符。RPAD在右侧填充,LPAD在左侧填充。例如,LPAD(RPAD('gao', 10, '*'), 17, '*')返回'*******gao*******'。 9. LTRIM和RTRIM函数:LTRIM删除...

    oracle的字符函数.docx

    Oracle数据库中的字符函数是SQL查询中非常重要的组成部分,它们用于处理和操作字符串数据。下面将详细介绍标题和描述中提到的一些关键字符函数。 1. **大小写控制函数**: - `lower()` 函数用于将字符串转换为全...

    Oracle数据库中单行字符串函数简介

    15. RPAD() 函数:RPAD()函数与LPAD()类似,但在字符串右侧填充字符,以达到指定的总长度。 了解并熟练掌握这些单行字符串函数对于在Oracle数据库中进行数据操作和查询至关重要,它们可以帮助开发者高效地处理字符...

    oracle函数分类.rar

    此外,`LPAD`和`RPAD`用于在字符串左侧或右侧填充字符,确保字符串达到指定长度。 接下来,**日期函数**对于处理时间数据至关重要。`SYSDATE`返回当前系统日期和时间,`ADD_MONTHS`可以增加或减少指定月份,`...

    学习ORACLE常用数值函数转换函数字符串函数介绍.pdf

    Oracle数据库系统提供了丰富的函数,包括数值函数、转换函数和字符串函数,帮助用户在处理数据时进行各种操作。这些函数在SQL查询和数据库应用程序开发中起着至关重要的作用。 1. 数值函数: - `ABS(m)`:计算并...

    oracle内置函数学习

    还有REPLACE()函数可以替换字符串中的特定字符或子串,以及LPAD()和RPAD()用于在字符串左侧或右侧填充指定字符以达到指定长度。 日期和时间处理是数据库操作中常见的需求,Oracle的内置日期函数如SYSDATE获取当前...

Global site tag (gtag.js) - Google Analytics