如何在Oracle 9i中拆分String

时间:2012-10-30 09:35:52

标签: oracle9i

任何人都可以帮我解决这个问题,我需要使用oracle 9i分割字符串 String exp =“员工人数*薪酬+经验年数”
我的预期输出是在解析“员工编号”“支付”“经验年数”之后 是否有可能在oracle 9i查询中做,提前多谢

3 个答案:

答案 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)来自双重;