17,377
社区成员
发帖
与我相关
我的任务
分享
create table tb(ANSWER VARCHAR2(256))
insert into tb values('答案=A,1,1;')
insert into tb values('答案=B,2,34;')
insert into tb values('答案=C,2,34,567;')
insert into tb values('答案=D,2,34,567,AGD;')
select substr(answer , instr(answer , ',' , -1) + 1 , instr(answer , ';' , -1) - instr(answer , ',' , -1) - 1) result from tb
drop table tb
/*
RESULT
--------------------------------------------------------------------------------
1
34
567
AGD
4 rows selected.
*/
create table tb(ANSWER VARCHAR2(256))
insert into tb values('答案=A,1,1;')
insert into tb values('答案=B,2,34;')
insert into tb values('答案=C,2,34,567;')
insert into tb values('答案=D,2,34,567,AGD;')
select substr(answer , instr(answer , ',' , -1) + 1 , instr(answer , ';' , -1) - instr(answer , ',' , -1) - 1) result from tb
drop table tb
/*
RESULT
--------------------------------------------------------------------------------
1
34
567
AGD
4 rows selected.
*/
select substr(ANSWER,
instr(ANSWER,',',-1)+1,
instr(ANSWER,';',-1)-instr(ANSWER,',',-1)-1
) from your_table;
select substr('D,2,34,567,AGD;',
instr('D,2,34,567,AGD;', ',', '-1') + 1 ,
length('D,2,34,567,AGD;') - instr('D,2,34,567,AGD;', ',', '-1') - 1
)
from dual
create table tb(ANSWER VARCHAR2(256))
insert into tb values('答案=A,1,1;')
insert into tb values('答案=B,2,34;')
insert into tb values('答案=C,2,34,567;')
insert into tb values('答案=D,2,34,567,AGD;')
select reverse(substr(reverse(answer) , instr(reverse(answer),';') + 1 , instr(reverse(answer),',') - instr(reverse(answer),';') - 1)) result
from tb
where instr(answer,';') > 0 and instr(answer,',') > 0 and instr(answer,';') > instr(answer,',')
/*
RESULT
--------------------------------------------------------------------------------
1
34
567
AGD
4 rows selected.
*/
drop table tb