网上找了很多资料,终于学会了地址分割,特此记录。
1.完整代码
SELECT
address,
SUBSTR(address,1,INSTR(address,'省')) as '省',
substr(address,instr(address,'省')+1,REGEXP_INSTR(address,'市|州',6)-instr(address,'省')) as '市/州',
substr(address,REGEXP_INSTR(address,'市|州',6)+1,REGEXP_INSTR(address,'市|县|区',8)-REGEXP_INSTR(address,'市|州',6))as '区/县',
substr(address,REGEXP_INSTR(address,'市|县|区',8)+1,REGEXP_INSTR(address,'乡|镇|道',11)-REGEXP_INSTR(address,'市|县|区',8)) as '乡/镇',
substr(address,REGEXP_INSTR(address,'乡|镇|道',11)+1,REGEXP_INSTR(address,'村|区',12)-REGEXP_INSTR(address,'乡|镇|道',11)) as '村'
from tmp;
2.截取市州两种方法,一个用case when实现,一个用正则实现。第一次摸索时用了case when,但是到后面要取县级时发现太麻烦了,因此学会了正则,特此记录一下。
# 截取市州法一:
SELECT
addre