【发布时间】:2020-07-17 01:19:45
【问题描述】:
在 BigQuery 上使用标准 SQL,我将多个电子邮件列组合成一组独特的电子邮件。
输出(通过 Excel 上的 PowerQuery 查询)显示为
{"v":[{"v":"joe@fakemail.com"},{"v":"joe.bro@someemail.com"}]}
我第一次看到这个。
-
这看起来像一个键值对象,其中一个数组作为值,然后每个数组值又是一个键值对象。这是正常输出吗? (我在下面粘贴相关代码sn-p)。
-
如何输出 [joe@fakemail.com , joe.bro@someemail.com] 或 ["joe@fakemail.com" , "joe.bro@someemail.com"]。
以下是导致此输出的一段 SQL:
WITH emails AS (
select 'Joe' as name, 'joe@hotmail.com,joe@someemail.com' as email1, 'joe@hotmail.com' as email2
UNION ALL
select 'Brenda', 'brenda@mail.com', 'Brenda81@TEST.com'
)
select name,
ARRAY(
SELECT DISTINCT REPLACE(TRIM(LOWER(EMAIL))," ","") from UNNEST(
ARRAY_CONCAT(
SPLIT(email1, ","),
SPLIT(email2, ",")
)
) AS EMAIL WHERE EMAIL like '%@%'
) AS UNIQUE_EMAILS,
FROM emails
【问题讨论】:
-
@MikhailBerlyant 你指的是我的代码 sn-p?
-
是的。我想在你的问题中回答 #2 这会有所帮助
-
好的。这是你的建议吗?
-
您好,请参考official documentation,它描述了访问ARRAY 元素。让我知道结果。
标签: sql arrays google-bigquery