【问题标题】:how to combine column which value is varchar after group by如何在分组后组合值为varchar的列
【发布时间】:2018-08-03 22:29:06
【问题描述】:

在 oracle 中,我有一个如下表

ID   Name   Location
001  John      A
002  peter     A
003  Jack      B
004  Dennis    C

如何按位置获取 ID+名称组 结果是这样的

 001_John;002_peter    A
    003_Jack              B
    004_Dennis            c  

【问题讨论】:

    标签: sql oracle oracle11g


    【解决方案1】:

    使用 listagg 函数尝试以下查询

    SELECT 
        location,
        LISTAGG(id||'_'||name), ';') WITHIN GROUP (ORDER BY id,name) "names"
    FROM table_x
    GROUP BY location
    

    【讨论】:

      【解决方案2】:

      你可以在oracle中使用wm_concat()来实现

      SELECT location,wm_concat(t.id||'_'||t.name)
      FROM yourtable t 
      group by t.location
      

      【讨论】:

      • 您应该将 id 与名称连接,而不是位置
      猜你喜欢
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 2020-07-02
      • 2020-03-23
      • 1970-01-01
      • 2014-09-09
      相关资源
      最近更新 更多