在oracle db中将重复值作为列表获取

时间:2014-12-24 06:48:24

标签: sql oracle select

我在oracle db中有以下表

id       group
100       1
101       2
102       2
103       1
104       1

我需要将ID作为逗号分隔的列表按组分组,如下所示。

group       ids
  1       100,103,104
  2       101,102

1 个答案:

答案 0 :(得分:1)

Oracle 11g引入了listagg函数:

SELECT   "group", LISTAGG(id, ',') WITHIN GROUP (ORDER BY id) AS ids
FROM     my_table
GROUP BY "group"

注意:group是SQL中的保留字,因此引号将其保护为列名。如果您的真实表具有不同的名称,则不需要它们。