栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive sql正则获取省/市/区

Hive sql正则获取省/市/区

在网上搜集关于sql正则表达式取类似字段发现并没有直接可以参考的正则表达式,特此分享给大家。

原版demo,如下图。

想要效果 :省、市、区/县,如下图。

 

获取起来对我来说并不容易.. 特此写出sql 分享给大家。

recipient_address为字段名称 

select 
 recipient_address,
 case when recipient_address like '%省%' then regexp_extract(recipient_address 
 ,'[^省]+省',0)  
 when  recipient_address like '%市%市%' then regexp_extract(recipient_address ,'[^ 市]+市',0)
 when  recipient_address like '%自治区%市%区%' then regexp_extract(recipient_address ,'[^自治区]+自治区',0)
 when  recipient_address like '%自治区%市%县%' then regexp_extract(recipient_address ,'[^自治区]+自治区',0)
end as province,
case when recipient_address like '%省%' then regexp_extract(recipient_address ,'[^省]+市',0)  
 when recipient_address like '%市%市%' then regexp_extract(recipient_address ,'[^市]+市',0)  
 when recipient_address like '%自治区%市%区%' then regexp_extract(recipient_address ,'[^自治区]+市',0)  
 when recipient_address like '%自治区%市%县%' then regexp_extract(recipient_address ,'[^自治区]+市',0) 
end as city,
case
when recipient_address like '%省%' or recipient_address like '%市%市%' then regexp_extract(recipient_address ,'[^市]+区',0) 
when recipient_address like '%市%市%' or recipient_address like '%市%市%' then regexp_extract(recipient_address ,'[^市]+区',0)  
when recipient_address like '%自治区%市%区%' or recipient_address like '%市%市%' then regexp_extract(recipient_address ,'[^市]+区',0)  
when recipient_address like '%自治区%市%县%' or recipient_address like '%市%市%' then regexp_extract(recipient_address ,'[^市]+县',0)    
end as distrist
from(
select 
case when recipient_address like '%省%' then regexp_extract(recipient_address ,'[^省]+省[^市]+市[^区]+区',0) 
when recipient_address like '%自治区%市%区%' then regexp_extract(recipient_address ,'[^自治区]+自治区[^市]+市[^区]+区',0) 
when recipient_address like '%自治区%市%县%' then regexp_extract(recipient_address ,'[^自治区]+自治区[^市]+市[^县]+县',0) 
when recipient_address like '%市%市%' then regexp_extract(recipient_address ,'[^市]+市[^市]+市[^区]+区',0) 
else recipient_address
end as recipient_address
from 表名称 
) a 

 希望对大家有帮助!谢谢!

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/600448.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号