Google bigquery 大查询中按分隔符拆分

Google bigquery 大查询中按分隔符拆分,google-bigquery,Google Bigquery,我有一张IP的桌子。我想用子网掩码创建另一列。 在大查询中有没有办法做到这一点?我特别需要按分隔符拆分,如下所示: IP Subnet 1.2.3.4 1.2 1.2.4.5 1.2 1.2.6.7 1.2 2.3.4.6 2.3 2.3.7.8 2.3 有什么想法吗 我需要按分隔符进行拆分 下面是BigQuery标准SQL的示例 #standardSQL with `project.dataset.table` AS ( select '1.2.3.4' col1

我有一张IP的桌子。我想用子网掩码创建另一列。 在大查询中有没有办法做到这一点?我特别需要按分隔符拆分,如下所示:

IP       Subnet 
1.2.3.4  1.2
1.2.4.5  1.2
1.2.6.7  1.2
2.3.4.6  2.3
2.3.7.8  2.3
有什么想法吗

我需要按分隔符进行拆分

下面是BigQuery标准SQL的示例

#standardSQL
with `project.dataset.table` AS (
  select '1.2.3.4' col1 union all
  select '1.2.4.5' union all
  select '1.2.6.7' union all
  select '2.3.4.6' union all
  select '2.3.7.8' 
)
select col1, regexp_extract(col1, r'\d+.\d+') col2
from `project.dataset.table`    
结果


您也可以使用
SUBSTR()
INSTR()
来获得结果:

指令(源值、搜索值、位置、出现次数)

with mytable AS (
  select '1.2.3.4' IP union all
  select '1.2.4.5' IP union all
  select '1.2.6.7' IP union all
  select '2.3.4.6' IP union all
  select '2.3.7.8' IP 
)
select IP, 
       SUBSTR(IP, 1, INSTR(IP, '.', 1, 2)-1) Subnet 
  from mytable