想要在数据集中从地址中分别截取省份和城市

尝试过substring(列,1,instr(列,'省',1)) 省份

substring(列,instr(列,'省',1)+1,instr(列,'市',1)-instr(列,'省',1)) 城市

都报错了,可以单独使用substring,但是个别自治区的就会遇到图三的情况,如何解决呢?

数据库是用的mysql

image.pngimage.png

image.pngimage.png

FineReport 胡桂丹 发布于 2022-3-22 10:24 (编辑于 2022-3-22 11:07)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-3-22 10:27(编辑于 2022-3-22 11:16)

总共特殊就几个。你直接单独判断一下自治区就行了。。。。

西藏。新疆,广西。宁夏。好像就这几个特殊吧。。

case when instr(列,"新疆")>0 then 你的语句

when instr(列,"西藏")>0 then 你的语句

when instr(列,"宁夏")>0 then 你的语句

when instr(列,"广西")>0 then 你的语句

else 通用的语句就是你上面的sql  end as dddd

/*修改你特殊的*/

SELECT 

       case when instr('新疆维吾尔自治区乌鲁木齐市','新疆')>0 then '新疆维吾尔自治区'

      when  instr('新疆维吾尔自治区乌鲁木齐市','广西')>0 then '广西壮族自治区'

    else '其它通用' end as 省份,

     case when instr('新疆维吾尔自治区乌鲁木齐市','新疆')>0 then substring(substring('新疆维吾尔自治区乌鲁木齐市XXX县',9,8),1,instr(substring('新疆维吾尔自治区乌鲁木齐市XXX县',9,8),'市'))

      when  instr('新疆维吾尔自治区乌鲁木齐市','广西')>0 then '广西壮族自治区'

    else '其它通用' end as 城市

image.png

  • 2关注人数
  • 277浏览人数
  • 最后回答于:2022-3-22 11:16
    请选择关闭问题的原因
    确定 取消
    返回顶部