任何人都可以帮我解决这个问题,我需要使用oracle 9i分割字符串
String exp =“员工人数*薪酬+经验年数”
我的预期输出是在解析“员工编号”“支付”“经验年数”之后
是否有可能在oracle 9i查询中做,提前多谢
答案 0 :(得分:2)
select substr('Employee * Pay + Years of experience',1,instr('Employee * Pay + Years of experience','*')-2),substr('Employee * Pay + Years of experience',instr('Employee * Pay + Years of experience','*')+1,length('Employee * Pay + Years of experience')-instr('Employee * Pay + Years of experience','*')-21),substr('Employee * Pay + Years of experience',instr('Employee * Pay + Years of experience','+')+1) from dual;
答案 1 :(得分:1)
直接的答案是使用SUBSTR和INSTR功能。这是一个例子:
select substr('Employee * Pay + Years', 1, instr('Employee * Pay + Years', '*') - 2),
substr('Employee * Pay + Years', instr('Employee * Pay + Years', '*') + 2,
instr('Employee * Pay + Years', '+') - instr('Employee * Pay + Years', '*') - 3),
substr('Employee * Pay + Years', instr('Employee * Pay + Years', '+') + 2)
from dual
从那里按照自己的方式努力。 :)
答案 2 :(得分:0)
选择substr('员工*薪酬+多年经验',1,instr('员工*薪酬+经验年数','*') - 2),substr('员工*薪酬+多年经验', instr('员工*薪酬+经验年数','*')+ 2,instr('员工*薪酬+多年经验','+') - instr('员工*薪酬+经验年数','* ')-3),substr('员工*薪酬+多年经验',instr('员工*薪酬+经验年数','+')+ 2)来自双重;