SQL中的表如下:
PHONE_NUMBER -------- ppa:+77845678021@abc.gbc443.gbc356.7kffooopppp.deu tel:+77695002395 ....
正如你所看到的,我在COL1电话号码有很多“垃圾”,我需要转换该列中的值,以具有如下内容(只有电话号码):
PHONE_NUMBER -------- 77845678021 77695002395 ....
如何在SQL中做到这一点?
fquxozlt1#
你可以使用regexp_substr。类似这样:
regexp_substr
select regexp_substr(PHONE_NUMBER, '[0-9]{11,14}') PHONE_NUMBER from my_table
MySQL的演示可以看到here。这将提取第一个11到14位的块。因为你没有提供任何关于电话格式的规范,我猜在这里。编辑:对于Hive,应该使用regexp_extract:
regexp_extract
select regexp_extract(PHONE_NUMBER, '[0-9]{11,14}') PHONE_NUMBER from my_table
1条答案
按热度按时间fquxozlt1#
你可以使用
regexp_substr
。类似这样:MySQL的演示可以看到here。
这将提取第一个11到14位的块。因为你没有提供任何关于电话格式的规范,我猜在这里。
编辑:对于Hive,应该使用
regexp_extract
: