首页 > 解决方案 > 如何在 UNNEST 语句中转换数组元素

问题描述

我在 BigQuery 中有一个REPEATED类型的列ARRAY[STRING],我想在其上创建一个过滤器来执行此操作:

SELECT campaign,
       event_list
FROM `adobe_analytics.raw_data_20200*`
WHERE campaign IS NOT NULL
AND "1" IN UNNEST(split(event_list,","))

除了我不想寻找"1",我想将列event_list转换integer_event_list为类型ARRAY[INT],然后有这样的子句WHERE 1 IN UNNEST(integer_event_list)。我如何实现这一目标?

标签: sqlgoogle-bigquery

解决方案


以下是 BigQuery 标准 SQL

SELECT campaign, event_list
FROM `adobe_analytics.raw_data_20200*`
WHERE campaign IS NOT NULL
AND 1 IN (SELECT CAST(e AS INT64) FROM UNNEST(SPLIT(event_list,",")) e)

推荐阅读