概述

很多时候我们都需要统计某个字符出现的次数,这里主要用translate来实现。


Translate 的用法

1、语法:

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。

实例:

SELECT TRANSLATE('abcdefghij','abcdef','123456') FROM dual;SELECT TRANSLATE('abcdefghij','abcdefghij','123456') FROM dual;

2、语法:

TRANSLATE(expr,from,to)

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

实例:

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

实际使用

需求1:将数字转换为9,其他的大写字母转换为X,然后返回。

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

需求2:将数字保留,将其他的大写字母移除。

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

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

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

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

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

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

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

等同于:

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

以上就是关于Oracle Translate 统计字符出现的次数方面的内容,希望对大家有所帮助。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

oracle为空替换为0_详解Oracle如何用Translate来统计字符出现的次数相关推荐

  1. oracle命令未正确结束_详解Oracle数据库终止正在进行expdp导出数据的正确操作

    概述 今天在做expdp导出时因没预估好数据量,所以需终止正在进行expdp导出数据的任务.那么怎么正确停止expdp导出任务呢?下面介绍一下我的操作过程. 1.不能用ctrl+c来终止导出(演示) ...

  2. oracle数据泵整库备份,详解oracle 12c通过数据泵expdp/impdp工具实现对数据备份、恢复...

    标签: 简介 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1.实现逻辑备份和逻辑恢复 2.数据库用户之间移动对象 ...

  3. 创建emp表 oracle,Oracle中创建和管理表详解

    Oracle中创建和管理表详解 更新时间:2013年08月01日 15:44:16   作者: 以下是对Oracle中的创建和管理表进行了详细的分析介绍,需要的朋友可以过来参考下 SQL> /* ...

  4. 直播预告丨Oracle数据库网络及存储技术详解-2022云和恩墨大讲堂

     文末有惊喜福利哟~ Oracle数据库网络及存储技术详解 点此" 预约 ",即刻报名↓ DBA需要掌握些什么?这是一个老生常谈的话题了.很多时候数据库出了问题,到底是数据库本身的 ...

  5. 深入详解Oracle data change notification

    深入详解 Oracle  data change notification   0.什么是 Oracle  data change notification  ? 当有多个应用程序或者进程操作同一个数 ...

  6. Oracle中序列(Sequence)详解

    Oracle中序列(Sequence)详解 一 序列定义 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).不占用磁盘空间,占用内存. 其主要用 ...

  7. oracle imp 1403,Oracle中用exp/imp命令参数详解【转】

    Oracle中用exp/imp命令参数详解 [用 exp 数 据 导 出]: 1  将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 expsyste ...

  8. oracle中调试存储过程,详解Oracle调试存储过程

    详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图 ...

  9. 在oracle中游标的操作,Oracle中的游标和函数详解

    Oracle中的游标和函数详解 1.游标 游标是一种 PL/SQL 控制结构:可以对 SQL 语句的处理进行显示控制,便于对表的行数据 逐条进行处理. 游标并不是一个数据库对象,只是存留在内存中. 操 ...

最新文章

  1. 日志系统的设计与实现_it运维管理系统|综合运维的设计与实现
  2. Windows核心编程 第25章 未处理异常和C ++异常(下)
  3. Tengine怎么去安装第三方模块、以及安装源码中的模块
  4. 深度解密Go语言之unsafe
  5. 猜数大小编程c语言_猜数正确编程
  6. python爬虫中文乱码_解决Python爬虫处理文件时候中文名称出现乱码问题
  7. Docker基础操作命令
  8. 调整SAP系统中物料账和财务账的期间
  9. java模块详解_Spring之IOC核心模块详解
  10. OCIEnvCreate 失败,返回代码为 -1的解决方法
  11. E: flAbsPath on /var/lib/dpkg/status failed - realpath (2: 没有那个文件或目录)
  12. tracepro杂散光分析例子_第二期青年矿床学家网络论坛(刘琰碳酸岩杂岩体型稀土矿;王小林CO2成矿效应)...
  13. 219.存在重复元素II
  14. c语言求个十百千万大写,大写数字一到十百千万怎么写?大写数字0到十百千万图片...
  15. 我曾做过陈士成,也做过孔乙己,还做过阿Q
  16. 西电大学计算机专硕,2021西安电子科技大学计算机专硕考研成功经验分享
  17. 2009年以来我买过的书(部分)
  18. Erlang并发编程(五) --- bigwig
  19. 2020第十一届蓝桥杯省赛C组第一场
  20. 谷歌SEO排名受哪些因素的影响?(一)

热门文章

  1. rabbitmq多个消费者监听一个队列_RabbitMQ的六种工作模式
  2. python在工厂中的应用_什么是工厂函数?Python 中工厂函数怎么理解?
  3. java后台处理ajax请求_java后台怎么对ajax请求的内容进行xss转义?
  4. java finally块_java finally块后的语句是否要执行
  5. java md5.computehash_c# – ObjectDisposedException使用MD5 ComputeHash时
  6. 1.2 位于Shell脚本第一行的#!
  7. Gcd HDU - 6545 (基础数论)
  8. python系统学习:函数积累(持续更新)
  9. 服务器应用缓存热点问题思考
  10. 葡萄城报表V11 SP2新版本震撼发布!