首页 > 解决方案 > 将逗号分隔的电子邮件拆分为不同的列

问题描述

我在表中有一组用户的一组数据。数据是 JSON 格式,我必须从那里提取它。

有一个数据集,电子邮件,其中包含该用户的多封电子邮件。有些用户有 4 封电子邮件,而其他用户有 3、2、1 封,甚至没有。

数据格式如下:

{"androidId":"49ca9d8934c67a03","deviceId":"863177039120979","emails":"xyzabcdef123@gmail.com,helloworld56@gmail.com,ihaveemail@gmail.com,gojkl8823@gmail.com","manufacturer":"LENOVO","name":"Lenovo A6020a40","networkOperator1Id1":"405854"}

所以首先我从 JSON 中提取这些数据,我得到的结果是

emails:xyzabcdef123@gmail.com,helloworld56@gmail.com,ihaveemail@gmail.com,gojkl8823@gmail.com

但是现在我需要将这些电子邮件相应地分成列。

在这里,决赛桌应该是这样的

我尝试了一些事情,但没有到达那里。有人可以帮我吗?

标签: sqlgoogle-bigquery

解决方案


试试 string_Split 函数

select STRING_SPLIT ( Emailcolumn , ',')  from email

前任

DECLARE @emails NVARCHAR(400) = 'me@aol.com,you@prodigy.com,him@zebra.net,that@compuserve.com,her@juno.com'  

SELECT value  as EmailAddress
FROM STRING_SPLIT(@emails , ',')  
WHERE RTRIM(value) <> '';  

推荐阅读