zoukankan      html  css  js  c++  java
  • plsql 中substr函数和instr函数的灵活应用

      我一直觉得一个技术大牛,都是能够很好的应用基础知识,基础知识不牢,会造成我们在实际应用中会感到困惑,进而影响到我们更好的发挥,substr函数和instr函数的灵活应用是建立在熟知各个函数的功能和作用的基础上的。

      SUBSTR函数:

         俗称截取函数,格式:substr(待截取的字符串,截取的起始位置,截取的结束位置), 返回的结果是截取之后的字符串;

         截取的起始位置:从第0位开始截取的效果和从第1位开始截取的效果是一样的,效果如下:

                   

      截取的结束位置:如果不填,默认从截取的起始位置 截取到最后一位;

                

    INSTR函数:

           俗称查找函数;格式:instr(源字符串, 目标字符串, 查找起始位置, 第几次出现的),查找子字符串在源字符串中的位置,如果在源串中没有找到子串,则返回0。返回的结果是一个数值;

         查找起始位置为正数,表示从左往右查找,为负数,表示从右往左开始查找;

         以下表示:查找字符a在字符串中从第三个字符开始查找第一次字符a第一次出现;

                 

        一般情况下, 【查找起始位置, 第几次出现的】,这个不填,就默认查找的起始位置为1,第一次出现,如下图:

             

       如下图, 当起始位置为负数,表示从右往左第三位开始查找,第三次出现a字符的位置,返回的结果时从右往左的位置;

       

     熟悉了substr函数和instr函数的基本知识后,就可以进行复杂的处理;

     例子:如果遇到某个字段的值格式为A-B,那要截取A的数据变成格式为: 姓:A-名:B  这个时候就需要substr函数和instr函数的交叉使用;

    分析:   先确定-在字符的位置,使用instr函数,返回所找字符的具体位置,然后利用substr函数去截取,然后使用替换函数;

    instr('A-B','-');

    获取到A的值:substr('A-B',1,instr('A-B','-')-1); --从第一位开始截取一直到-出现的位置的上一位;

    获取到B的值:substr('A-B',instr('A-B','-')+1),--从-出现的位置开始截取,一直截取到最后一位;

    然后拼接加上替换函数实现目标:

    ‘姓:’||substr('A-B',1,instr('A-B','-')-1)||‘名:’||substr('A-B',instr('A-B','-')+1),

    在学习的过程切不可贪多,贪难,难题都是简单题组合使用,遇到难题就要去分解,最后结果肯定是你平时学的基础知识的应用;

    暂时先分享比较基础的,慢慢的晋升的难度更大的,切记:基础不牢,地动山摇!

      

  • 相关阅读:
    callAfter 例子2
    wxpython
    python 处理excel 进程无法退出的问题
    常用电子技术网
    Emeditor 与正则表达式
    Windows程序中的字符编码
    Delphi7 无法启动 问题搞定
    2007中国发烧盘点之作《天路》发烧女声版
    一台电脑安装多个(虚拟)网卡问题
    无法删除xxx文档/文件夹:找不到指定的路径。请确定指定的路径是否正确
  • 原文地址:https://www.cnblogs.com/chenqiankun/p/9715349.html
Copyright © 2011-2022 走看看