【问题标题】:How to split column by delimiter on Google BigQuery如何在 Google BigQuery 上按分隔符拆分列
【发布时间】:2021-12-13 07:53:43
【问题描述】:

我有一列电子邮件,我想将其分成两列,使用@ 作为分隔符。

表:

预期结果

【问题讨论】:

    标签: sql google-bigquery delimiter


    【解决方案1】:

    试试

    select split(email, "@")[ofsset(0)],split(email, "@")[ofsset(1)] 
    

    【讨论】:

      【解决方案2】:

      尝试SPLIT 和随后的OFFSET

      SELECT SPLIT(email, '@')[OFFSET(0)] as email1, SPLIT(email, '@')[OFFSET(1)] as email2
      FROM mytable
      

      【讨论】:

        【解决方案3】:

        考虑另一种 [非正统,甚至可能很愚蠢,但希望很有趣,并展示 BigQuery 的一些额外功能] 方法

        select * from (
          select * from your_table, 
          unnest(regexp_extract_all(email, r'[^@]+')) piece with offset 
        )
        pivot (min(piece) as email for offset in (0, 1))     
        

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

        【讨论】:

        • 爱它!谢谢!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-18
        • 2018-03-12
        相关资源
        最近更新 更多