在 AWS Athena 中,我想编写这样的查询:

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

回来
row1
row2
row3

我该怎么做呢?

我知道我可以写这个,但对我来说不太方便:
select * from (values ('row1'), ('row2'), ('row3'))

最佳答案

您可以使用 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)

关于sql - AWS 雅典娜 : Convert a comma delimited string into rows,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57421469/

10-10 11:30