Sql 如何在BigQuery中检查列表中是否有多个值

Sql 如何在BigQuery中检查列表中是否有多个值,sql,google-bigquery,Sql,Google Bigquery,有没有办法使这一条款更加紧凑 SELECT campaign ,event_list FROM `adobe_analytics.raw_data_20200*` WHERE campaign IS NOT NULL -- What does it mean when a campaign is null in Adobe_analytics AND ( "1" IN UNNEST(split(event_list,",")) OR &qu

有没有办法使这一条款更加紧凑

SELECT campaign
       ,event_list
FROM `adobe_analytics.raw_data_20200*`
WHERE campaign IS NOT NULL  -- What does it mean when a campaign is null in Adobe_analytics
AND
(
"1" IN UNNEST(split(event_list,","))
OR "2" IN UNNEST(split(event_list,","))
OR "3" IN UNNEST(split(event_list,","))
)
比如:

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

下面是BigQuery标准SQL

SELECT campaign ,event_list
FROM `adobe_analytics.raw_data_20200*`
WHERE campaign IS NOT NULL
AND (
  SELECT COUNT(1) FROM UNNEST(SPLIT(event_list,",")) e
  JOIN UNNEST(SPLIT("1,2,3",",")) e USING(e)
) > 0

下面是BigQuery标准SQL

SELECT campaign ,event_list
FROM `adobe_analytics.raw_data_20200*`
WHERE campaign IS NOT NULL
AND (
  SELECT COUNT(1) FROM UNNEST(SPLIT(event_list,",")) e
  JOIN UNNEST(SPLIT("1,2,3",",")) e USING(e)
) > 0

我会使用
存在

SELECT campaign, event_list
FROM `adobe_analytics.raw_data_20200*` rd
WHERE campaign IS NOT NULL AND
      EXISTS (SELECT 1
              FROM UNNEST(SPLIT(rd.event_list)) el
              WHERE el IN ('1', '2', '3')
             );

我会使用
存在

SELECT campaign, event_list
FROM `adobe_analytics.raw_data_20200*` rd
WHERE campaign IS NOT NULL AND
      EXISTS (SELECT 1
              FROM UNNEST(SPLIT(rd.event_list)) el
              WHERE el IN ('1', '2', '3')
             );