2017-07-12 4 views
2

私は、2013,1625,1297,7634のように長い数字の文字列である列からBigQuery標準SQLのINT64の配列を取得しようとしています。しかし、私はINT64のではなく、文字列の配列の配列を返すようにしたい整数の配列にSTRINGsのBigquery配列

SELECT 
    SPLIT(string_col,",") 
FROM 
    table 

:私は簡単に文字列の配列を引くことができます。どうやってやるの?私は試しました

CAST(SPLIT(string_col,",") AS ARRAY<INT64>) 

しかし、それは動作しません。

以下

答えて

1

は、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 
+0

あなたはそれに私を打ちます:)おそらく 'ARRAY'サブクエリを使っていることを示すかもしれませんか? (それは私が投稿するつもりだった)。 –

+0

:o)良い点 - 追加 - これがあなたが意味するものなら –

0

ためであるミハイルはそれに私を殴り、彼の答えは、より広範であるが、より最小限REPROとしてこれを追加する:

SELECT CAST(num as INT64) from unnest(SPLIT("2013,1625,1297,7634",",")) as num; 
+0

これをチェック: "私はINT64の配列**を返したい:") –