用正则表达式将某字段指定从某处开始截取到某处结束
例如:zb字段是由经度和纬度组成,这时我们需要将经度和纬度数据各自取出来
因为regexp_substr也只能从指定位置开始截取,因此我们先找到经度数据出现的最后一位的位置,既’纬度’出现的前一位,这时使用 instr()函数 查找和 substr() 函数 截取
select regexp_substr(substr(zb,1,instr(zb,'纬度')-1),'[0-9]+\.[0-9]+$') as jd from m_ss_mszt_gqyyljgmx
截取到经度数据后我们需要将截取 ‘经度:’ 后的数据,这时用 regexp_substr() 截取,其中正则部分 ‘[0-9]+.[0-9]+$’ 的意思时匹配满足 ‘数字’+’.’+‘数字’ 格式的数据
select regexp_substr(substr(zb,1,instr(zb,'纬度')-1),'[0-9]+\.[0-9]+$') as jd from m_ss_mszt_gqyyljgmx