AWS Athena:将逗号分隔的字符串转换为行

时间:2019-08-08 22:37:19

标签: sql presto amazon-athena

在AWS Athena中,我想编写如下查询:

SELECT some_function('row1,row2,row3');

然后回来

row1
row2
row3

我该怎么做?

我知道我可以改写这个,但这对我来说不太方便:

select * from (values ('row1'), ('row2'), ('row3'))

1 个答案:

答案 0 :(得分:6)

您可以使用split函数将字符串转换为数组,然后使用UNNEST将数组转换为行。例如:

WITH t AS (
    SELECT 'row1,row2,row3' AS data
)
SELECT value
FROM t
CROSS JOIN UNNEST(split(t.data, ',')) as x(value)
 value 
-------
 row1  
 row2  
 row3  
(3 rows)