Как объявить переменную типа list / array / struct в BigQuery - PullRequest
0 голосов
/ 06 января 2020

Как я могу объявить переменную типа списка в 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 [больше чем] который он не принимает

1 Ответ

1 голос
/ 06 января 2020

Попробуйте следующий код:

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)
...