簡體   English   中英

如何在 BigQuery 中聲明列表/數組/結構類型變量

[英]How to declare a list/array/struct type variable in BigQuery

如何在 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 list STRUCT [less than] int64,int64 [greater than] 它不接受

試試下面的代碼:

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)

如果您真的想將 DECLARE 與 STRUCT 類型一起使用,或者對於找到這篇文章的其他人,以下語法似乎也有效:

聲明 foo 默認(選擇為結構 2、2、2、2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM