表t中有一个a1字段,其中a1有值:
CC_LINSHI_TEST003
T_PUB_COMMONINFO_TEST008
等值,我要取出最后一个横杠后的字符,上例中要得到字符
TEST003
TEST008
请问怎么获取

解决方案 »

  1.   

    试试
    select substr(a1,0-instr(a1,'_',-1)+1) from table;
      

  2.   

    SELECT SUBSTR(T.a1, INSTR(T.a1, '_', -1, 1) + 1) FROM  T;
      

  3.   

    select substr('T_PUB_COMMONINFO_TEST008',instr('T_PUB_COMMONINFO_TEST008','_',1)+1,
    length('T_PUB_COMMONINFO_TEST008')-instr('T_PUB_COMMONINFO_TEST008','_',1)) from dual
      

  4.   

    select substr('T_PUB_COMMONINFO_TEST008',0,instr('T_PUB_COMMONINFO_TEST008','_',-1)-1) from dual
    最后一个横杠前
      

  5.   

    4楼,6楼,7楼都不对,执行出来的结果不是TEST003和TEST008
      

  6.   

    没有问题啊SQL> SELECT SUBSTR(T.a1, INSTR(T.a1, '_', -1, 1) + 1) FROM  T
      2  
    SQL> ed
    已写入文件 afiedt.buf  1* SELECT SUBSTR('CC_LINSHI_TEST003', INSTR('CC_LINSHI_TEST003', '_', -1, 1) + 1) FROM  dual
    SQL> /SUBSTR('CC_LIN
    --------------
    TEST003SQL> ed
    已写入文件 afiedt.buf  1* SELECT SUBSTR('T_PUB_COMMONINFO_TEST008', INSTR('T_PUB_COMMONINFO_TEST008', '_', -1, 1) + 1) FR
    SQL> /SUBSTR('T_PUB_
    --------------
    TEST008
      

  7.   

    没有也没关系吧SQL> SELECT SUBSTR('TEST003', INSTR('TEST003', '_', -1, 1) + 1) FROM  dual;SUBSTR('TEST00
    --------------
    TEST003