问题描述
SELECT REGEXP_SUBSTR('BOND~CRR~CD~DAKAR_2299913320','[^~]+',1,3) FROM DUAL
该查询的结果应类似于:CD
现在,我的问题是如何在hive中实现该查询,因为据我所知,hive没有REGEXP_SUBSTR语法,到目前为止,我已经尝试过的是:
select regexp_extract('BOND~CRR~CD~DAKAR_2299913320',0)
但结果是:BOND
当我将查询更改为:
select regexp_extract('BOND~CRR~CD~DAKAR_2299913320',2)
解决方法
您可以使用SPLIT Function代替REGEXP
select split('BOND~CRR~CD~DAKAR_2299913320','[\~]')[2]
有关更多详细信息,请参见下面的链接