• Oracle ltrim() rtrim() 函数详细用法


    今天在论坛里看了一篇帖子,讨论ltrim() 函数的详细用法,下面我借几个高手的回答总结一下:

    先看几个实例:

    SQL> select ltrim('109224323','109') from dual;

    LTRIM('109224323','109')
    ------------------------
    224323

    这个的功能应该都知道的噢~~  再来看一个:

    SQL> select ltrim('10900094323','109') from dual;

    LTRIM('10900094323','109')
    ---------------------------
    4323

    是不是有点迷糊了?按道理说应该是00094323的结果嘛~~  再来看两个对比的:

    SQL> select ltrim('10900111000991110224323','109') from dual;

    LTRIM('10900111000991110224323
    ------------------------------
    224323

    SQL> select ltrim('109200111000991110224323','109') from dual;

    LTRIM('10920011100099111022432
    ------------------------------
    200111000991110224323

    是不是有这样的疑问:为什么第二个查询语句多了一个2就没被截了呢?

    再来看一个:


    SQL> select ltrim('902100111000991110224323','109') from dual;

    LTRIM('90210011100099111022432
    ------------------------------
    2100111000991110224323

    我想大家都都会想:按道理说是截109的值,为什么90也被截了?

    总结:ltrim(x,y) 函数是按照y中的字符一个一个截掉x中的字符,并且是从左边开始执行的,只要遇到y中有的字符, x中的字符都会被截掉, 直到在x的字符中遇到y中没有的字符为止函数命令才结束 .

    网友回答: 函数将109当成了三个字符以1,0,9在字符串开始直道出现不为1,0,9这三个字符中的任意一个开始截取; 
    可以看出,ltrim函数是从匹配函数开始之后出现在子串中任何字符都被屏蔽掉了;

    以上仅为个人观点, 欢迎各位留言讨论...

    实验证明:ltrim()与rtrim()都存在这种情况.

    转自:http://blog.csdn.net/zhaozhongju/archive/2009/04/07/4054713.aspx

  • 相关阅读:
    hdu3457(有向图的dp问题)
    nyoj16矩形嵌套(第一道dp关于dag的题目)
    noj1475(递推题)统计多少个1
    hdu1331(记忆化搜索)
    hdu1142(dj+记忆化搜索)
    hdu1978(记忆化搜索)
    用广搜实现的spfa
    hdu1428(记忆化搜索)
    hdu1078(记忆化搜索)
    poj3261(后缀数组)
  • 原文地址:https://www.cnblogs.com/wllcs/p/6208133.html
Copyright © 2020-2023  润新知