Oracle Translate 统计字符出现的次数示例代码

 更新时间:2017年03月16日 11:16:26   作者:xlxxcc  
这篇文章主要介绍了Oracle Translate 统计字符出现的次数示例代码,非常不错具有参考借鉴价值,需要的朋友可以参考下

特殊用法:统计字符串中 E 出现的次数:

SELECT LENGTHB(TRANSLATE('ABCDEFGEFGDBE','E'||'ABCDEFGEFGDBE','E')) FROM DUAL;

等同于:

SELECT LENGTHB('ABCDEFGEFGDBE')-LENGTHB(REPLACE('ABCDEFGEFGDBE','E','')) FROM DUAL;

Translate 的用法

一、语法:

 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语句。

四、示例

SELECT TRANSLATE('abcdefghij','abcdef','123456') FROM dual;
123456ghij
SELECT TRANSLATE('abcdefghij','abcdefghij','123456') FROM dual;
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

示例如下:

示例一:将数字转换为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

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

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

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

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

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

SELECT TRANSLATE('中国人', substr('中国人',1,length('中国人') - 1), rpad('*',length('中国人'),'*')) "License" FROM DUAL

以上所述是小编给大家介绍的Oracle Translate 统计字符出现的次数示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Oracle 的入门心得 强烈推荐

    Oracle 的入门心得 强烈推荐

    oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路。
    2009-05-05
  • oracle查看执行最慢与查询次数最多的sql语句

    oracle查看执行最慢与查询次数最多的sql语句

    这篇文章主要给大家介绍了oracle查看执行最慢与查询次数最多的sql语句,文中给出完整的示例代码,相信对大家的学习或者工作具有一定的参考价值,有需要的朋友们下面来一起看看吧。
    2017-01-01
  • oracle数据库超全的多表查询连接

    oracle数据库超全的多表查询连接

    这篇文章主要给大家介绍了关于oracle数据库超全的多表查询连接的相关资料,多表连接查询实际上是通过各个表之间公共字段的关键性来查询数据的,它是关系数据库查询的最主要的特征,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • Oracle to_date()函数的用法介绍

    Oracle to_date()函数的用法介绍

    to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,需要的朋友可以参考下
    2014-08-08
  • Oracle中的分析函数汇总

    Oracle中的分析函数汇总

    本文详细讲解了Oracle中的分析函数,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Oracle 19c创建数据库的完整步骤(详细明了)

    Oracle 19c创建数据库的完整步骤(详细明了)

    Oracle19c可以用于创建数据库与表空间,创建表空间特别慢是因为后台进程多,拉低进程速度导致的,下面这篇文章主要给大家介绍了关于Oracle 19c创建数据库的完整步骤,需要的朋友可以参考下
    2023-04-04
  • Oracle连接远程数据库的四种方法

    Oracle连接远程数据库的四种方法

    这篇文章主要为大家详细介绍了Oracle连接远程数据库的四种设置方法和注意事项,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Oracle解锁的方式介绍

    Oracle解锁的方式介绍

    通过SQL查询可以查看到被锁住的表AA以及Sid,Serial#;使用DBA身份,通过执行 alter system kill session 'SID,SERIAL#';即可解锁
    2013-06-06
  • 深刻理解Oracle数据库的启动和关闭

    深刻理解Oracle数据库的启动和关闭

    深刻理解Oracle数据库的启动和关闭...
    2007-03-03
  • 使用sqlplus命令行工具为oracle创建用户和表空间

    使用sqlplus命令行工具为oracle创建用户和表空间

    这篇文章主要介绍了使用sqlplus为oracle创建用户和表空间的方法,本文介绍的是使用Oracle 9i所带的命令行工具:SQLPLUS,需要的朋友可以参考下
    2017-11-11

最新评论