分组后如何合并值为varchar的列

时间:2018-08-03 08:06:50

标签: sql oracle oracle11g

在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  

2 个答案:

答案 0 :(得分:2)

使用listagg函数尝试以下查询

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

答案 1 :(得分:1)

您可以在oracle中使用 wm_concat()

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