Bigquery STRING 数组到 INT 数组

Chr*_* B. 3 google-bigquery

我试图从一个列中提取标准 SQL 中的INT64s数组,BigQuery该列是一长串由逗号分隔的数字(例如,2013,1625,1297,7634)。我可以通过以下方式轻松拉出一系列字符串:

SELECT
  SPLIT(string_col,",")
FROM
  table
Run Code Online (Sandbox Code Playgroud)

但是,我想返回一个INT64s数组,而不是一个字符串数组。我怎样才能做到这一点?我试过了

CAST(SPLIT(string_col,",") AS ARRAY<INT64>) 
Run Code Online (Sandbox Code Playgroud)

但这不起作用。

Mik*_*ant 7

下面是 BigQuery 标准 SQL

#standardSQL
WITH yourTable AS (
  SELECT 1 AS id, '2013,1625,1297,7634' AS string_col UNION ALL
  SELECT 2, '1,2,3,4,5'
)
SELECT id, 
  (SELECT ARRAY_AGG(CAST(num AS INT64)) 
    FROM UNNEST(SPLIT(string_col)) AS num
  ) AS num,
  ARRAY(SELECT CAST(num AS INT64) 
    FROM UNNEST(SPLIT(string_col)) AS num
  ) AS num_2
FROM yourTable
Run Code Online (Sandbox Code Playgroud)