首页 > 解决方案 > 从由特殊字符分隔的字符串数组中删除特定后缀

问题描述

我想从域名字段中删除“.(something)”后缀,该字段是由管道(|)分隔的字符串数组

数据如下所示——

ID          domain
1        ab23c45|xyz167a.abc|d1ef76om.abc|rx08bj23
2        omg23hy5|xyz167a|ab23c45.xyz|jhy2ft3.def

结果应该看起来像 -

ID          domain
1        ab23c45|xyz167a|d1ef76om|rx08bj23
2        omg23hy5|xyz167a|ab23c45|jhy2ft3

注意:后缀可以是任何东西。需要一个适用于任何后缀的通用解决方案

标签: sqlgoogle-bigquery

解决方案


以下是 BigQuery 标准 SQL

#standardSQL
SELECT id,  
  (
    SELECT STRING_AGG(REGEXP_REPLACE(domain, r'\.\w+$', ''), '|')
    FROM UNNEST(SPLIT(domain, '|')) domain
  ) domain
FROM `project.dataset.table`   

如果适用于您的问题的样本数据 - 输出是

Row id  domain   
1   1   ab23c45|xyz167a|d1ef76om|rx08bj23    
2   2   omg23hy5|xyz167a|ab23c45|jhy2ft3

 

推荐阅读