HIVE SQL使用字符函数 instr 的问题(参数只有两个)

 

例如,IP地址 117.136.2.165

想要截取前三组的地址,得到网络地址 117.136.2

在oracle,可以使用如下语句:

select substr('117.136.2.165',1,instr('117.136.2.165','.',1,3)-1)
from dual
;

 

但是,在hive sql里,instr只有前两个参数,即只能实现

instr('117.136.2.165','.')

 

这种情况下,可以用正则函数实现目的,代码如下:

select regexp_extract('117.136.2.165','(.*?\\..*?\\..*?)\\..*', 1)
from table_name

select regexp_extract('117.136.2.165','(.*?\\..*?\\..*?)\\..*')
from table_name

 

你可能感兴趣的:(数据库)