试试 select substr(a1,0-instr(a1,'_',-1)+1) from table;
SELECT SUBSTR(T.a1, INSTR(T.a1, '_', -1, 1) + 1) FROM T;
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
select substr('T_PUB_COMMONINFO_TEST008',0,instr('T_PUB_COMMONINFO_TEST008','_',-1)-1) from dual 最后一个横杠前
4楼,6楼,7楼都不对,执行出来的结果不是TEST003和TEST008
没有问题啊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
select substr(a1,0-instr(a1,'_',-1)+1) from table;
length('T_PUB_COMMONINFO_TEST008')-instr('T_PUB_COMMONINFO_TEST008','_',1)) from dual
最后一个横杠前
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
--------------
TEST003