zoukankan      html  css  js  c++  java
  • 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带着左侧空格完整返回了)

  • 相关阅读:
    POI实现Excel导入数据库数据
    POI对Excel进行读取操作,工具类,便于操作数据
    HAProxy-1.8.20 根据后缀名转发到后端服务器
    Haproxy-1.8.20 编译安装:
    Soat控制HaProxy 动态增减服务器
    Haproxy-1.8.20 根据路径(URI)转发到后端不同集群
    Ansible User 模块添加单用户并ssh-key复制
    Ansible-playbook 安装redis
    二进制安装mysql-5.7.28
    编译安装 nginx -1.14.2
  • 原文地址:https://www.cnblogs.com/lgs-19/p/7595639.html
Copyright © 2011-2022 走看看