当字符串类型的列表中有逗号时,无法在 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
如果应用于您问题中的示例数据 - 输出为
当字符串类型的列表中有逗号时,无法在 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
如果应用于您问题中的示例数据 - 输出为