【发布时间】:2018-10-03 13:38:31
【问题描述】:
我在 Big Query 表中有记录为
名称值
Aashis ["AB",AC"]
拉胡尔 ["AA",AD"]
这里name和value列为String类型
我希望输出为
名称值
阿希斯 AB
阿西斯空调
拉胡尔 AA
拉胡尔广告
【问题讨论】:
标签: google-bigquery
我在 Big Query 表中有记录为
名称值
Aashis ["AB",AC"]
拉胡尔 ["AA",AD"]
这里name和value列为String类型
我希望输出为
名称值
阿希斯 AB
阿西斯空调
拉胡尔 AA
拉胡尔广告
【问题讨论】:
标签: google-bigquery
以下是 BigQuery 标准 SQL
#standardSQL
SELECT name, value
FROM `project.dataset.table`,
UNNEST(value) value
您可以使用您问题中的虚拟数据进行测试,如下所示
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'Aashis' name, ["AB","AC"] value UNION ALL
SELECT 'Rahul', ["AA","AD"]
)
SELECT name, value
FROM `project.dataset.table`,
UNNEST(value) value
结果
Row name value
1 Aashis AB
2 Aashis AC
3 Rahul AA
4 Rahul AD
更新:列值是 String 类型,Unnest 接受数组。如何将此列转换为数组?
见下例
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'Aashis' name, '["AB","AC"]' value UNION ALL
SELECT 'Rahul', '["AA","AD"]'
)
SELECT name, value
FROM `project.dataset.table`,
UNNEST(SPLIT(REGEXP_REPLACE(value, r'^\[|]$', ''))) value
结果
Row name value
1 Aashis "AB"
2 Aashis "AC"
3 Rahul "AA"
4 Rahul "AD"
【讨论】:
array of string。所以看起来这不是一个案例!我会尽快更新答案