我试图从一个列中提取标准 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)
但这不起作用。
下面是 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)
| 归档时间: |
|
| 查看次数: |
4798 次 |
| 最近记录: |