Oracle的trim( )、ltrim( )、rtrim( )三个函数的用法及注意事项
学习一下用法整理trim()、ltrim()、rtrim()的用法
trim()、ltrim()、rtrim()三个函数有两个作用,分别是:
一、去除字符串前后空格(基本用法)
trim(string):去除指定字符串string的左右空格,当然,string中间有空格的时候是不会被去除
SELECT trim(' aaa bbb ccc ') trim FROM dual;
TRIM
-------
aaa bbb ccc
ltrim(string)、rtrim(string):分别去除指定字符串string左侧和右侧的空格
SELECT ltrim(' aaa bbb ccc ') ltrim FROM dual;
LTRIM
---------
aaa bbb ccc (注意,此时返回的字符串右侧是有空格的)
SELECT rtrim(' aaa bbb ccc ') rtrim FROM dual;
RTRIM
---------
aaa bbb ccc(显然此时返回的字符串左侧是有空格的)
二、去除字符串左右 / 中指定字符(深度分析)
trim( leading | trailing | both string1 FROM string2):从string2中去除左侧 | 右侧 | 左侧两侧(默认是both,即左右侧都去掉)的string1字符,注意,string1只能是单个字符。
SELECT trim(leading ' ' from ' aaa bbb ccc ') leadingtrim FROM dual;
LEADINGTRIM
---------------------
aaa bbb ccc (注意,此时返回的字符串右侧是有空格的)
SELECT trim(trailing ' ' from ' aaa bbb ccc ') trailingtrim FROM dual;
TRAILINGTRIM
---------------------
aaa bbb ccc(显然,此时返回的字符串左侧是有空格的)
SELECT trim(both ' ' from ' aaa bbb ccc ') bothtrim FROM dual;
BOTHTRIM
----------------
aaa bbb ccc(返回的字符串两侧的空格都被去掉)
(注意,以上三个示例中,如果都是要完成“去空格”的话,可以简写成 trim( leading | trailing | both FROM string),即省略空格。)
ltrim(string1,string2),rtrim(string1,string2):从字符串string1左侧(右侧)开始去除与string2字符集合中单个字符匹配的字符,直到在string1中遇上某个字符,该字符不在string2字符集合中。
SELECT ltrim('abccba','abc') ltrim FROM dual;
LTRIM
--------
(返回的是空串)
SELECT rtrim('abccba','abc') rtrim FROM dual;
RTRIM
--------
(返回的是空串)
而至于“直到在string1中遇上某个字符,该字符不在string2字符集合中”这句话,则是体现ltrim函数和rtrim函数区别的时候。我们在上面两个例子的基础上对string1稍作改动,在string1中加个“x”:
SELECT ltrim('abcxcba','abc') ltrim FROM dual;
LTRIM
--------
xcba(结果并不是只剩一个“x”,而是包括stirng1中“x”以及右侧的字符)
SELECT rtrim('abcxcba','abc') rtrim FROM dual;
RTRIM
--------
abcx(结果并不是只剩一个“x”,而是包括stirng1中“x”以及左侧的字符)
ltrim函数从string1左侧往右读,左侧前三个字符分别在string2中找到了对应的单个字符匹配,所以都被去除掉,读到“x”的时候,没有匹配上,所以从这开始到string1右侧都被保留并返回;相反,rtrim函数从string2右侧往左读,右侧前三个字符分别在string2中找到了对应的单个字符匹配,所以都被去掉,读到“x”的时候,没有匹配上,所以从这开始到string1左侧都被保留并返回。
由此类推,如果string1中左侧(右侧)第一个字符在string2中找不到对应,那么ltrim(rtrim)函数将会把string1字符串完整返回:
SELECT ltrim(' abcxcba','abc') ltrim FROM dual;
LTRIM
--------
abcxcba(string2中并没有空格这个字符串,所以string1带着左侧空格完整返回了)
Oracle的trim( )、ltrim( )、rtrim( )三个函数的用法及注意事项的更多相关文章
- javascript模仿php 函数 trim ltrim rtrim (原创)
javascript模仿php 函数 trim ltrim rtrim,去除字符串两边空格或其他符号 本文地址:js trim js php trim function trims(){ this. ...
- 面试官:能解释一下javascript中bind、apply和call这三个函数的用法吗
一.前言 不知道大家还记不记得前几篇的文章:<面试官:能解释一下javascript中的this吗> 那今天这篇文章虽然是介绍javascript中bind.apply和call函数 ...
- javascript对字符串的常见操作trim,ltrim,rtrim,isEmpty,isFloat等
1.验证字符串是否为空格.是否包含非法字符. //验证是否字符串有非法字符 function v_invalide_char(value,msg){ var arr = ['#','@','!','$ ...
- Oracle中NVL、NVL2、DECODE函数的用法
DECODE函数的用法: DECODE(value,if1,then1,if2,then2,if3,then3,......,else),表示如果value的值等于if1时,DECODE函数的结果 ...
- mysql向表中某字段前后追加一段字符串 concat(), trim(), ltrim(), rtrim(), repeat()
1.mysql向表中某字段后面追加一段字符串:update table_name set field=CONCAT(field, '分隔符', str);//'分隔符',可以为空,也可以省略updat ...
- TRIM ,LTRIM ,RTRIM ,空格过滤
- Oracle数据库中 to_date()与to_char()函数的用法
to_date() ,to_char()与24小时制表示法及mm分钟的显示: 一.在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH: ...
- C++ scanf_s()函数的用法以及注意事项
前身--scanf() 有的教材里用的scanf(),其实在目前Visual Studio版本中已经弃用了,用scanf_s()函数代替了. 为什么现在要用scanf_s() scanf_s()函数是 ...
- [PHP源码阅读]trim、rtrim、ltrim函数
trim系列函数是用于去除字符串中首尾的空格或其他字符.ltrim函数只去除掉字符串首部的字符,rtrim函数只去除字符串尾部的字符. 我在github有对PHP源码更详细的注解.感兴趣的可以围观一下 ...
随机推荐
- ASP.NET Core 防止跨站请求伪造(XSRF/CSRF)攻击
什么是反伪造攻击? 跨站点请求伪造(也称为XSRF或CSRF,发音为see-surf)是对Web托管应用程序的攻击,因为恶意网站可能会影响客户端浏览器和浏览器信任网站之间的交互.这种攻击是完全有可能的 ...
- 小爬新浪新闻AFCCL
1.任务目标: 爬取新浪新闻AFCCL的文章:文章标题.时间.来源.内容.评论数等信息. 2.目标网页: http://sports.sina.com.cn/z/AFCCL/ 3.网页分析 4.源代码 ...
- try...catch...finally语句块
try-catch-finally语句主要是用来处理检查异常,捕获并处理,以及最后必须要执行的finally块. try-catch-finally语句入门: 1.try-catch-finally语 ...
- 两个大数相乘-Java
两个字符串表示两个非常大的数,请设计算法计算这两个大数的乘积,结果用字符串表示.例如S1="7832974972840919321747983209327",S2="19 ...
- ASP.NET Core 运行原理解剖[4]:进入HttpContext的世界
HttpContext是ASP.NET中的核心对象,每一个请求都会创建一个对应的HttpContext对象,我们的应用程序便是通过HttpContext对象来获取请求信息,最终生成响应,写回到Http ...
- 深入理解JAVA I/O系列六:Linux中的IO模型(转载的文章非常值得学习)
From:http://www.cnblogs.com/dongguacai/p/5770287.html IO模型 linux系统IO分为内核准备数据和将数据从内核拷贝到用户空间两个阶段. 这张图大 ...
- 如何部署 Calico 网络?- 每天5分钟玩转 Docker 容器技术(67)
Calico 是一个纯三层的虚拟网络方案,Calico 为每个容器分配一个 IP,每个 host 都是 router,把不同 host 的容器连接起来.与 VxLAN 不同的是,Calico 不对数据 ...
- windows系统,优化C盘空间的方法
C盘在使用过程中,内容会越来越多,剩余空间越来越小.如何清理出更多空间呢?以windows7为例 转载请保留 http://www.cnblogs.com/lion-zheng/ cleanmgr w ...
- css3 如何实现圆边框的渐变
使用 css 实现下面效果: 把效果分解. 代码一: <style> .helper1 { height: 40px; padding: 15px; background: -webkit ...
- 团队作业八——第二次团队冲刺(Beta版本)第3天
一.每个人的工作 (1) 昨天已完成的工作 对界面进行完善,并增加简单界面(包含简单界面内含的界面),简单模式与复杂模式的选择界面. (2) 今天计划完成的工作 做一下用户注册的功能和登录功能. (3 ...