分别截取省份城市,但是省份和省市的字符长度都不是固定的,比如新疆地区,有的地区是直辖市没有省份,最后
with t as (
select '广东省珠海市博弈县' str
union
select '广西唯物自治区淮海市南部镇' str
)
select str,
case when locate('省',str) then substr(str,1,locate('省',str))
else substr(str,1,locate('自治区',str)+2) end 省份,
case when locate('省',str) then substr(str,locate('省',str)+1,locate('市',str)-locate('省',str))
else substr(str,locate('自治区',str)+3,locate('市',str)-locate('自治区',str)-2) end 城市
from t;