当字符串类型的列表中有逗号时,无法在 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

我的预期输出是

Aashis AB
Aashis AC
Rahul AA
Rahul AD

我已经关注了 link

非常感谢任何帮助

试试这个:

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 

如果应用于您问题中的示例数据 - 输出为