【问题标题】: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))
如果应用于您问题中的样本数据 - 输出是