代码之家  ›  专栏  ›  技术社区  ›  Daniel Kaplan

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

  •  0
  • Daniel Kaplan  · 技术社区  · 5 年前

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

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

    然后回来

    row1
    row2
    row3
    

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

    select * from (values ('row1'), ('row2'), ('row3'))
    
    0 回复  |  直到 5 年前
        1
  •  7
  •   Dain Sundstrom    5 年前

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