如何在BigQuery中声明列表/数组/结构类型变量

问题描述 投票:0回答:1

如何在BigQuery中声明列表类型变量,以便可以在where子句中使用它?我有此代码

WITH
  subquery AS (
  SELECT
    1 AS col1
  UNION ALL
  SELECT
    2 AS col1
  UNION ALL
  SELECT
    3 AS col1 )

SELECT
  col1
FROM
  subquery
WHERE
  col1 IN (1, 2)

相反,我想使用查询中的变量来说明这一点

DECLARE list ARRAY;
SET list = (1,2);

WITH
  subquery AS (
  SELECT
    1 AS col1
  UNION ALL
  SELECT
    2 AS col1
  UNION ALL
  SELECT
    3 AS col1 )

SELECT
  col1
FROM
  subquery
WHERE
  col1 IN list

我尝试了DECLARE列表STRUCT [小于] int64,int64 [大于]它不接受

arrays struct google-bigquery ddl
1个回答
1
投票

尝试以下代码:

DECLARE list ARRAY <INT64>;
SET list = [1,2];

WITH
  subquery AS (
  SELECT
    1 AS col1
  UNION ALL
  SELECT
    2 AS col1
  UNION ALL
  SELECT
    3 AS col1 )

SELECT
  col1
FROM
  subquery
WHERE
  col1 IN UNNEST(list)
© www.soinside.com 2019 - 2024. All rights reserved.