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 "*"应有的东西。有任何想法吗?
以下是 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)
| 归档时间: |
|
| 查看次数: |
4764 次 |
| 最近记录: |