Oracle SQL将列的值放在一行中

时间:2013-06-21 15:46:49

标签: sql oracle

我有一个查询,我正在返回3列

ID    NUMBER    LETTER
123    1        a
124    2        b
123    1        c
123    1        d

我想做的是像

这样的行
ID    NUMBER    LETTER
123    1        a,c,d

当ID和NUMBER列相同时,一个值为t

1 个答案:

答案 0 :(得分:2)

在Oracle 11g中,您可以使用LISTAGG()函数:

select id,
  number,
  listagg(letter, ', ') within group(order by id, number) as letter
from yourtable
group by id, number;

请参阅SQL Fiddle with Demo