如题,比如有"abc_def_ghj_klm"这个字符串,我想求出'_'最后一次出现的位置,从而能够利用substr这个函数得到"klm"这个字串,希望各位大侠能帮忙解答,谢谢啊~~

解决方案 »

  1.   

    try it ...
    SQL> select substr('abc_def_ghj_klm',instr('abc_def_ghj_klm','_',-1)+1)
      2    from dual;SUBSTR('ABC_DEF_GHJ_KLM',INSTR
    ------------------------------
    klm
      

  2.   

    SELECT SUBSTR('abc_def_ghj_klm',
                  INSTR('abc_def_ghj_klm',
                        '_',
                        1,
                        (LENGTH('abc_def_ghj_klm') -
                        LENGTH(REPLACE('abc_def_ghj_klm', '_'))) / LENGTH('_')) + 1,
                  (LENGTH('abc_def_ghj_klm') -
                  (LENGTH('abc_def_ghj_klm') -
                  LENGTH(REPLACE('abc_def_ghj_klm', '_'))) / LENGTH('_')))
      FROM DUAL