【问题标题】:How to concatenate two strings in different rows in SQL (Snowflake)?如何在 SQL (Snowflake) 中连接不同行中的两个字符串?
【发布时间】:2021-08-05 21:27:20
【问题描述】:

所以我在雪花中有如下数据:

   Question       Answer    ID
First name?         John   001
 Last name?        Smith   001
First name?         Avon   002
 Last name?    Barksdale   002
First name?     Stringer   003
 Last name?         Bell   003

还有CONCATENATE这些到下面的吗?

ID       Full_Name
001     John Smith
002 Avon Barksdale
003  Stringer Bell

【问题讨论】:

    标签: sql concatenation snowflake-cloud-data-platform


    【解决方案1】:

    您可以为此使用listagg

    SELECT listagg(answer,' ') WITHIN GROUP (ORDER BY question)
    FROM x
    GROUP BY id;
    

    【讨论】:

    • 很棒的答案 :-) ... 很好地使用 WITHIN GROUP
    【解决方案2】:

    您可以使用条件聚合:

    select id,
           concat_ws(' ',
                     (case when question = 'First name?' then answer end),
                     (case when question = 'Last name?' then answer end)
                    ) as fullname
    from t
    group by id
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 2012-01-17
      • 2011-04-14
      相关资源
      最近更新 更多