提取某列数据中以空格为分隔符的特定列和固定长度列数据作为输出

时间:2022-11-05 15:03:28
我有一列字符如下:
110278 121212  2121212  1998bcd  fadadada
112       212131 2121         2999dada dadada
.................................


我只想提取列数据如下:
1998
2999
请大拿赐教

4 个解决方案

#1


自己写个function吧,一劳永逸;

#2


取第三个空格后的4位字符:
select substr('110278 121212  2121212  1998bcd  fadadada',instr('110278 121212  2121212  1998bcd  fadadada',' ',1'3)+1,4) from dual;

#3


,instr('110278 121212  2121212  1998bcd  fadadada',' ',1'3)写错了,应该:
select substr('110278 121212  2121212  1998bcd  fadadada',instr('110278 121212  2121212  1998bcd  fadadada',' ',1,3)+1,4) from dual;

#4


引用 3 楼 mayanzs 的回复:
,instr('110278 121212  2121212  1998bcd  fadadada',' ',1'3)写错了,应该:
select substr('110278 121212  2121212  1998bcd  fadadada',instr('110278 121212  2121212  1998bcd  fadadada',' ',1,3)+1,4) from dual;
非常感谢,我之前搜了关于substr和instr的用法,没整明白,看完你的写法后,明白了。非常感谢 提取某列数据中以空格为分隔符的特定列和固定长度列数据作为输出

#1


自己写个function吧,一劳永逸;

#2


取第三个空格后的4位字符:
select substr('110278 121212  2121212  1998bcd  fadadada',instr('110278 121212  2121212  1998bcd  fadadada',' ',1'3)+1,4) from dual;

#3


,instr('110278 121212  2121212  1998bcd  fadadada',' ',1'3)写错了,应该:
select substr('110278 121212  2121212  1998bcd  fadadada',instr('110278 121212  2121212  1998bcd  fadadada',' ',1,3)+1,4) from dual;

#4


引用 3 楼 mayanzs 的回复:
,instr('110278 121212  2121212  1998bcd  fadadada',' ',1'3)写错了,应该:
select substr('110278 121212  2121212  1998bcd  fadadada',instr('110278 121212  2121212  1998bcd  fadadada',' ',1,3)+1,4) from dual;
非常感谢,我之前搜了关于substr和instr的用法,没整明白,看完你的写法后,明白了。非常感谢 提取某列数据中以空格为分隔符的特定列和固定长度列数据作为输出