热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oracle:replace和translate函数详解

简要比较:replace:字符串级别的代替如:SELECTREPLACE('acdd','cd','ef')FROMdual;→aefdtranslate:字符级别的代替www.2cto.com如:SELE

简要比较:
    replace:字符串级别的代替
    如:SELECT REPLACE('acdd','cd','ef') FROM dual; →aefd
translate:字符级别的代替  www.2cto.com  
如:SELECT TRANSLATE('acdd','cd','ef') FROM dual; →aeff
    分别详解:
    replace:
    语法:REPLACE ( char , search_string [, replacement_string] )
    解释:repalce中,每个search_string都被replacement_string所代替。
    select replace('acdd','cd','ef') from dual;→ aefd
    如果replacement_string为空或为NULL,那么所有的search_string都被移除。
    select replace('acdd','cd','') from dual;→ad
    如果search_string为null,那么就返回原来的char。
    select replace('acdd','','ef') from dual;→acdd
    select replace('acdd','','') from dual;→acdd(也是两者都为空的情况)
translate:
    语法:TRANSLATE ( 'char' , 'from_string' , 'to_string' )
    解释:Translate中,每个from_string中的字符被to_string中相应的字符所代替。
    select translate('acdd','cd','ef') from dual;→aeff  www.2cto.com  
    如果from_string比to_string长,那么from_string中多余的字符将被移除。
    select translate('acdd','acd','ef') from dual;→ef (a由e代替,c由f代替,d就被移除)
    select translate('acdd','cda','ef') from dual;→eff(c由e代替,d由f代替,a就被移除)
    如果to_string为空,或者两者都为空,那么返回char也为空。所以to_string不能为空。
    select translate('acdd','cd','') from dual;→ (空)
    select translate('acdd','','') from dual;→(空)
    实战:
    如何判断一个字符串是否是数字?
    解:先转换:由于to_string不能为空,我们巧用#号代替
    select translate('abc123','#1234567890.','#') from dual;→abc
    from_string中的#被to_string中的#代替,但char中又没有#字符,所以通过这一步躲开了to_string必须不为空的规则。然后后面的数字以及小数点都转换为空,于是原来的字符串中只留下abc三个字符。
    转换好后,用nvl2判断即可:
    select nvl2(translate('abc123','#1234567890.','#'),'字符串','数字') from dual;→字符串
    nvl2的作用就是,NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2;为NULL,返回expr3。这样我们就可以判断一个字符串是否是数字了!解毕!
 
 
 
作者 aaron8219

推荐阅读
  • 本文详细介绍了跨站脚本攻击(XSS)的基本概念、工作原理,并通过实际案例演示如何构建XSS漏洞的测试环境,以及探讨了XSS攻击的不同形式和防御策略。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 YN2014.04
    雨林木风 GHOST XP SP3 经典珍藏版 YN2014.04 ... [详细]
  • 探讨如何在给定数组中寻找一个连续子数组,使其和至少达到指定值s,同时确保子数组长度最短。 ... [详细]
  • IntelliJ IDEA配置微服务启动显示
    通过编辑IntelliJ IDEA的workspace.xml文件,可以实现微服务启动对象的显示。具体步骤包括定位并修改workspace.xml中的RunDashboard部分。 ... [详细]
  • 本文详细介绍了在作业帮应用中如何启用护眼模式,调整屏幕颜色为浅黄色,并关闭不必要的通知音,以提升用户的使用体验。 ... [详细]
  • 本文对唐代诗人元稹的作品《和乐天重题别东楼》进行了深入的解析与赏析,通过对其原文的翻译及艺术特色的探讨,揭示了诗作中蕴含的深刻情感与文化价值。 ... [详细]
  • 深入理解TCP头部结构
    本文详细介绍了TCP头部的各个字段及其功能,包括源端口、目标端口、序列号、确认号等关键字段,以及TCP头部的大小、标志位、窗口大小、校验和等辅助信息。通过解析实际的TCP头部示例,帮助读者更好地理解TCP协议的工作原理。 ... [详细]
  • LoadRunner中的IP欺骗配置与实践
    为了确保服务器能够有效地区分不同的用户请求,避免多人使用同一IP地址造成的访问限制,可以通过配置IP欺骗来解决这一问题。本文将详细介绍IP欺骗的工作原理及其在LoadRunner中的具体配置步骤。 ... [详细]
  • 本文探讨了Java编程语言中常用的两个比较操作符==和equals方法的区别及其应用场景。通过具体示例分析,帮助开发者更好地理解和使用这两个概念,特别是在处理基本数据类型和引用数据类型的比较时。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 探讨了在移动设备上使用contentEditable属性时遇到的布局问题,并提供了解决方案。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
  • 本文介绍了如何通过设置特定属性来取消小程序中 Navigator 组件的默认点击效果,提高用户体验。 ... [详细]
  • 本文详细介绍了在MyBatis框架中如何通过#和$两种方式来传递SQL查询参数。使用#方式可以提高执行效率,而使用$则有助于在复杂SQL语句中更好地查看日志。此外,文章还探讨了不同场景下的参数传递方法,包括实体对象、基本数据类型以及混合参数的使用。 ... [详细]
author-avatar
Jasonscw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有