oracle为空替换为0_详解Oracle如何用Translate来统计字符出现的次数
概述
很多时候我们都需要统计某个字符出现的次数,这里主要用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来统计字符出现的次数相关推荐
- oracle命令未正确结束_详解Oracle数据库终止正在进行expdp导出数据的正确操作
概述 今天在做expdp导出时因没预估好数据量,所以需终止正在进行expdp导出数据的任务.那么怎么正确停止expdp导出任务呢?下面介绍一下我的操作过程. 1.不能用ctrl+c来终止导出(演示) ...
- oracle数据泵整库备份,详解oracle 12c通过数据泵expdp/impdp工具实现对数据备份、恢复...
标签: 简介 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1.实现逻辑备份和逻辑恢复 2.数据库用户之间移动对象 ...
- 创建emp表 oracle,Oracle中创建和管理表详解
Oracle中创建和管理表详解 更新时间:2013年08月01日 15:44:16 作者: 以下是对Oracle中的创建和管理表进行了详细的分析介绍,需要的朋友可以过来参考下 SQL> /* ...
- 直播预告丨Oracle数据库网络及存储技术详解-2022云和恩墨大讲堂
文末有惊喜福利哟~ Oracle数据库网络及存储技术详解 点此" 预约 ",即刻报名↓ DBA需要掌握些什么?这是一个老生常谈的话题了.很多时候数据库出了问题,到底是数据库本身的 ...
- 深入详解Oracle data change notification
深入详解 Oracle data change notification 0.什么是 Oracle data change notification ? 当有多个应用程序或者进程操作同一个数 ...
- Oracle中序列(Sequence)详解
Oracle中序列(Sequence)详解 一 序列定义 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).不占用磁盘空间,占用内存. 其主要用 ...
- oracle imp 1403,Oracle中用exp/imp命令参数详解【转】
Oracle中用exp/imp命令参数详解 [用 exp 数 据 导 出]: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 expsyste ...
- oracle中调试存储过程,详解Oracle调试存储过程
详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图 ...
- 在oracle中游标的操作,Oracle中的游标和函数详解
Oracle中的游标和函数详解 1.游标 游标是一种 PL/SQL 控制结构:可以对 SQL 语句的处理进行显示控制,便于对表的行数据 逐条进行处理. 游标并不是一个数据库对象,只是存留在内存中. 操 ...
最新文章
- 日志系统的设计与实现_it运维管理系统|综合运维的设计与实现
- Windows核心编程 第25章 未处理异常和C ++异常(下)
- Tengine怎么去安装第三方模块、以及安装源码中的模块
- 深度解密Go语言之unsafe
- 猜数大小编程c语言_猜数正确编程
- python爬虫中文乱码_解决Python爬虫处理文件时候中文名称出现乱码问题
- Docker基础操作命令
- 调整SAP系统中物料账和财务账的期间
- java模块详解_Spring之IOC核心模块详解
- OCIEnvCreate 失败,返回代码为 -1的解决方法
- E: flAbsPath on /var/lib/dpkg/status failed - realpath (2: 没有那个文件或目录)
- tracepro杂散光分析例子_第二期青年矿床学家网络论坛(刘琰碳酸岩杂岩体型稀土矿;王小林CO2成矿效应)...
- 219.存在重复元素II
- c语言求个十百千万大写,大写数字一到十百千万怎么写?大写数字0到十百千万图片...
- 我曾做过陈士成,也做过孔乙己,还做过阿Q
- 西电大学计算机专硕,2021西安电子科技大学计算机专硕考研成功经验分享
- 2009年以来我买过的书(部分)
- Erlang并发编程(五) --- bigwig
- 2020第十一届蓝桥杯省赛C组第一场
- 谷歌SEO排名受哪些因素的影响?(一)
热门文章
- rabbitmq多个消费者监听一个队列_RabbitMQ的六种工作模式
- python在工厂中的应用_什么是工厂函数?Python 中工厂函数怎么理解?
- java后台处理ajax请求_java后台怎么对ajax请求的内容进行xss转义?
- java finally块_java finally块后的语句是否要执行
- java md5.computehash_c# – ObjectDisposedException使用MD5 ComputeHash时
- 1.2 位于Shell脚本第一行的#!
- Gcd HDU - 6545 (基础数论)
- python系统学习:函数积累(持续更新)
- 服务器应用缓存热点问题思考
- 葡萄城报表V11 SP2新版本震撼发布!