繁体   English   中英

当字符串类型的列表中有逗号时,无法在 bigquery 中取消嵌套

[英]Unable to unnest in bigquery when there is comma inside list which is of type string

当字符串类型的列表中有逗号时,无法在 bigquery 中取消嵌套。 我有以下格式的数据,其中值是字符串类型

name value
Aashis ["A,B",AC"]
Rahul ["AA",AD"]

当我使用以下查询时,它被错误地拆分并且无法在 regexp_replace 中获得正确的逻辑

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'Aashis' name, '["A,B","AC"]' value UNION ALL
  SELECT 'Rahul', '["AA","AD"]'
)
SELECT name, value
FROM `project.dataset.table`,
UNNEST(SPLIT(REGEXP_REPLACE(value, r'^\[|]$', ''))) value   

使用上面的代码,我得到

Aashis A
Aashis B
Aashis AC
Rahul AA
Rahul AD

我预期的 output 是

Aashis AB
Aashis AC
Rahul AA
Rahul AD

我已经按照以下链接将字符串数组转换为单行值

非常感谢任何帮助

试试这个:

WITH `project.dataset.table` AS (
  SELECT 'Aashis' name, '["A,B","AC"]' value UNION ALL
  SELECT 'Rahul', '["AA","AD"]'
)
SELECT name, value
FROM `project.dataset.table`,
UNNEST(SPLIT(TRIM(REGEXP_REPLACE(value, r'^\[|]$', ''), '"'),'","')) value

在此处输入图像描述

考虑下面不太详细的选项

SELECT name, TRIM(new_value, '"') new_value
FROM `project.dataset.table`,
UNNEST(REGEXP_EXTRACT_ALL(value, r'".*?"')) new_value 

如果应用于您问题中的示例数据 - output 是

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM