按一个字段分组,其中包含所有值

时间:2015-04-02 04:08:21

标签: sql oracle select

如果我有一个包含两个字段(客户端,服务)的表,请说表格如下:

client | Service
  1    |   A
  1    |   B
  1    |   C
  2    |   A
  2    |   D

我想做一个select语句,我可以从每个客户端获得所有服务,所以结果看起来像这样

client  | Service
  1     | A, B, C
  2     | A, D

在SQL中可以吗?我正在使用oracle 10g

1 个答案:

答案 0 :(得分:2)

在这种情况下,您可以使用listagg -

select client, 
       listagg(service, ', ') within group (order by service) as service 
from the_table 
group by client;

listagg可用作聚合函数或分析函数。 从这里阅读更多内容 - link