oracle截取字符串救急

一个表A中字段info=?,-1,?,86,2,21, 这样100条数据。
如info:999,-1,89,86,2,21,
如info:1,-1,2,86,2,21,
我现在要提取‘?’的位置的数据,上面数据提取结果应为
999 89
1 2
请问SQL怎么写?
最新回答
兩袖清風口袋空空°

2025-03-30 01:01:07

SELECT SUBSTR('999,-1,89,86,2,21,', 0, INSTR('999,-1,89,86,2,21,', ',') - 1),
SUBSTR('999,-1,89,86,2,21,', INSTR('999,-1,89,86,2,21,', ',', 1 ,2) + 1, (INSTR('999,-1,89,86,2,21,', ',', 1, 3) - INSTR('999,-1,89,86,2,21,', ',', 1, 2) -1))
FROM DUAL;

把那个字符窜换成对应的字段, DUAL替换成你用的表名, 说白了就是用INSTR比较特殊的4个参数的用法找对应的索引位置就可以了!记得给分哦,好久没玩百度知道了!