学习一下用法整理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( )三个函数的用法及注意事项的更多相关文章

  1. javascript模仿php 函数 trim ltrim rtrim (原创)

    javascript模仿php 函数 trim  ltrim rtrim,去除字符串两边空格或其他符号 本文地址:js trim js php trim function trims(){ this. ...

  2. 面试官:能解释一下javascript中bind、apply和call这三个函数的用法吗

    一.前言    不知道大家还记不记得前几篇的文章:<面试官:能解释一下javascript中的this吗> 那今天这篇文章虽然是介绍javascript中bind.apply和call函数 ...

  3. javascript对字符串的常见操作trim,ltrim,rtrim,isEmpty,isFloat等

    1.验证字符串是否为空格.是否包含非法字符. //验证是否字符串有非法字符 function v_invalide_char(value,msg){ var arr = ['#','@','!','$ ...

  4. Oracle中NVL、NVL2、DECODE函数的用法

    DECODE函数的用法:   DECODE(value,if1,then1,if2,then2,if3,then3,......,else),表示如果value的值等于if1时,DECODE函数的结果 ...

  5. mysql向表中某字段前后追加一段字符串 concat(), trim(), ltrim(), rtrim(), repeat()

    1.mysql向表中某字段后面追加一段字符串:update table_name set field=CONCAT(field, '分隔符', str);//'分隔符',可以为空,也可以省略updat ...

  6. TRIM ,LTRIM ,RTRIM ,空格过滤

  7. Oracle数据库中 to_date()与to_char()函数的用法

    to_date() ,to_char()与24小时制表示法及mm分钟的显示: 一.在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH: ...

  8. C++ scanf_s()函数的用法以及注意事项

    前身--scanf() 有的教材里用的scanf(),其实在目前Visual Studio版本中已经弃用了,用scanf_s()函数代替了. 为什么现在要用scanf_s() scanf_s()函数是 ...

  9. [PHP源码阅读]trim、rtrim、ltrim函数

    trim系列函数是用于去除字符串中首尾的空格或其他字符.ltrim函数只去除掉字符串首部的字符,rtrim函数只去除字符串尾部的字符. 我在github有对PHP源码更详细的注解.感兴趣的可以围观一下 ...

随机推荐

  1. 七牛云数据存储Demo

    利用七牛云的Python SDK实现文件上传.下载等操作. import os import requests import qiniu from qiniu import BucketManager ...

  2. PyQt4 初试牛刀二

    一.最小话托盘后,调用showNormal()后窗口不刷新,解决办法如下: 重写showNormal 方法,调用父类方法后,repaint窗体 def showNormal(self):     su ...

  3. 最强黑吃黑:WEBSHELL大马隐藏万能密码大全

    因为很多原因,很多新手都不会编写自己的大马,大多数新手都会通过百度去下载对应脚本的大马,然而这些webshell大马都是早期流传出来的,基本上都存在后门,可以通过万能密码登录,即使你修改i过密码了,怎 ...

  4. python制作爬虫爬取京东商品评论教程

    作者:蓝鲸 类型:转载 本文是继前2篇Python爬虫系列文章的后续篇,给大家介绍的是如何使用Python爬取京东商品评论信息的方法,并根据数据绘制成各种统计图表,非常的细致,有需要的小伙伴可以参考下 ...

  5. js 在遍历时只会显示最后一个遍历到的结果

    在做项目时遇到了一个关于遍历的问题, 前提是:在ul中有n个li每个li从后台获取的数据中有一个sign的字段,当sign等于0时(li未被点击过)li会显示一个红点,当sign不等于0时(li已被点 ...

  6. shell之 printf 输出语句

    总结: (1)printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度.左右对齐方式等.默认printf不会像 echo 自动添加换行符,我们可以手 ...

  7. SVG坐标系统及图形变换

    前面的话 前面介绍过SVG视野后,本文将开始介绍SVG坐标系统及图形变换 坐标定位 对于所有元素,SVG使用的坐标系统或者说网格系统,和Canvas用的差不多(所有计算机绘图都差不多).这种坐标系统是 ...

  8. 极化码的matlab仿真(1)——参数设置

    根据老师的安排,对于极化码的了解从仿真开始. 仿真的手段有很多种.可以利用C,C++,matlab等进行仿真的实现.其中matlab由于具有强大的函数库,和壮观的矩阵运算能力,被(我们老师课题组)看中 ...

  9. python爬虫-抓取acg12动漫壁纸排行设置为桌面壁纸

    ACG-wallpaper 初学python,之前想抓取P站的一些图片来着,然后发现acg12这里有专门的壁纸榜单,就写了个抓取壁纸作为mac桌面壁纸玩玩. 功能:抓取acg12壁纸榜单的动漫壁纸,并 ...

  10. 数据库学习任务一:使用vs2010建立数据库

    数据库应用程序的开发流程一般主要分为以下几个步骤: 创建数据库 使用Connection对象连接数据库 使用Command对象对数据源执行SQL命令并返回数据 使用DataReader和DataSet ...