根据逗号分隔的字符串列将一行拆分为多行

ish*_*243 2 sql presto amazon-athena

我有一个像下面的表格,其中包含列A(int)B(string)

A   B
1   a,b,c
2   d,e
3   f,g,h
Run Code Online (Sandbox Code Playgroud)

我想创建如下输出:

A    B
1    a
1    b
1    c
2    d
2    e
3    f
3    g
3    h
Run Code Online (Sandbox Code Playgroud)

如果有帮助,我将在Amazon Athena(基于presto)中进行此操作。我知道presto提供了将字符串拆分为数组的功能。从presto 文档

split(字符串,定界符)?array
在定界符上分割字符串并返回一个数组。

虽然不确定如何从这里继续。

Vam*_*ala 5

unnest在返回的数组上使用split

SELECT a,split_b 
FROM tbl
CROSS JOIN UNNEST(SPLIT(b,',')) AS t (split_b)
Run Code Online (Sandbox Code Playgroud)