• 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),

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

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

      

  • 相关阅读:
    python-第05章-元组与购物车的程序练习
    python-第01章05章节-列表使用
    python-第01章04章节-python的数据类型和三元运算
    python-第03章-初识模块和解释pyc
    python-第01章02章节-密文,if else判断和while,for循环
    python-第01章01章节-用户输入以及字符串的介绍
    k8s- centos7.8搭建
    k8s-获取kuboardtoken
    k8s搭建
    nginx编译安装
  • 原文地址:https://www.cnblogs.com/chenqiankun/p/9715349.html
Copyright © 2020-2023  润新知