将字符串数组转换为单行值

时间:2018-10-03 13:38:32

标签: google-bigquery

我在Big Query表中有记录为
名称值
Aashis [“ AB”,AC“]
拉胡尔[“ AA”,AD“]

“名称和值”列为“字符串类型”

我希望输出为
名称值
Aashis AB
Aashis AC
拉胡尔AA
拉胡尔AD

1 个答案:

答案 0 :(得分:2)

以下是用于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接受数组。如何将此列转换为array?

请参见下面的示例

#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"