将 ARRAY_TO_STRING 与整数数组结合使用

Jos*_*ird 3 google-bigquery

ARRAY_TO_STRING()适用于字符串数组,但不支持整数数组。

我有一个包含 ID 列表的重复列,我想将其从美国数据集导出到欧盟数据集。到目前为止我正在使用

bq query --nouse_legacy_sql --allow_large_results --max_rows=100000000000 --format=csv < {sql_file} > {output_file}但这不适用于嵌套列,因为 CSV 不支持它们。

另一种选择是导出为 json,但我需要将其转换为换行 JSON。我可以用来jq转换它,但默认情况下它没有安装在服务器上。

相反,我将在导出之前扁平化重复的列。我认为我需要做的是将数组中的每个元素转换为字符串,然后使用ARRAY_TO_STRING(). 我在这里走的路正确吗?

我相信我想要类似的东西

SELECT ARRAY_TO_STRING(ARRAY((SELECT CAST(* AS STRING)), ';') FROM UNNEST(segments)) FROM my_table
Run Code Online (Sandbox Code Playgroud)

但这给了我Syntax error: Unexpected "*"应有的东西。有任何想法吗?

Mik*_*ant 9

以下是 BigQuery 标准 SQL

#standardSQL
SELECT (
    SELECT STRING_AGG(CAST(id AS STRING), ';') 
    FROM UNNEST(segments) id
  ) 
FROM `project.dataset.mytable`
Run Code Online (Sandbox Code Playgroud)