我一直在尝试在线搜索,但我只能看到如何添加、删除、更改表中的列。基本上,我需要在BigQuery中遍历电子邮件地址的整个列,并在每行中添加第二个电子邮件地址。
ID|Name |email
1 |Name1|email1@address.com
2 |Name2|email2@address.com
3 |Name3|email3@address.com
4 |Name4|email4@address.com
5 |Name5|email5@address.com
6 |Name6|email6@address.com
我正在寻找的是一些脚本,它将通过一个列,并添加第二个电子邮件添加中间的",“,所以它看起来像这样:
ID|Name |email
1 |Name1|email1@address.com,secondemail@address.com
2 |Name2|email2@address.com,secondemail@address.com
3 |Name3|email3@address.com,secondemail@address.com
4 |Name4|email4@address.com,secondemail@address.com
5 |Name5|email5@address.com,secondemail@address.com
6 |Name6|email6@address.com,secondemail@address.com
而所有的起始数据都保持不变。如果可能的话,请让我知道。此外,"secondemail@address.com“只是一个电子邮件地址,每个用户都不会改变。我只是需要这种格式的业务原因。
发布于 2020-09-03 10:30:16
下面是针对BigQuery标准SQL的说明
#standardSQL
SELECT * REPLACE(email || ',secondemail@address.com' AS email)
FROM `project.dataset.table`
您可以使用您的问题中的样本数据来测试、处理上面的内容,如下面的示例所示
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 id, 'Name1' name, 'email1@address.com' email UNION ALL
SELECT 2, 'Name2', 'email2@address.com' UNION ALL
SELECT 3, 'Name3', 'email3@address.com' UNION ALL
SELECT 4, 'Name4', 'email4@address.com' UNION ALL
SELECT 5, 'Name5', 'email5@address.com' UNION ALL
SELECT 6, 'Name6', 'email6@address.com'
)
SELECT * REPLACE(email || ',secondemail@address.com' AS email)
FROM `project.dataset.table`
带输出
Row id name email
1 1 Name1 email1@address.com,secondemail@address.com
2 2 Name2 email2@address.com,secondemail@address.com
3 3 Name3 email3@address.com,secondemail@address.com
4 4 Name4 email4@address.com,secondemail@address.com
5 5 Name5 email5@address.com,secondemail@address.com
6 6 Name6 email6@address.com,secondemail@address.com
https://stackoverflow.com/questions/63715878
复制相似问题