实现效果如下:
表A
1  a
1  b
2  c
2  d
3  a
3  c
查询结果
1  a,b
2  c,d
3  a,c
请考虑数据量大的查询,例子只是方便表达问题,谢谢。

解决方案 »

  1.   


    select 字段一,
    substr(max(sys_connect_by_path( 字段二,',')),2) 字段二,
    from ( select 
    字段一,字段二, row_number() over(order by 字段二) rn
    from 表A ) 
    start with rn=1
    connect by rn-1=prior rn
    group by 字段一
    9I
    select 字段一,wmsys.wm_concat(字段二) from (select distinct 字段一,字段二 from A) group by 字段一;
    10G
      

  2.   

    http://topic.csdn.net/u/20090409/15/d82a6ebc-5345-4755-8fb9-7ce10b0448b4.html
      

  3.   

    SELECT col1,wmsys.wm_concat(col2) FROM tb group by col1; 
      

  4.   

    同志们啊,用你们的语句半天没反应呢,我自己写了个方法
    CREATE OR REPLACE Function Getrs(ids In Number) Return Varchar2 Is
    ret Varchar2(1000);
    Begin
      ret  := '';
    For Cur In (Select 字段二 From A Where 字段一 = ids) Loop
    ret  := ret  || Cur.字段二 || ',';
    End Loop;
    Return ret ;
    End;
    结果是出来了,但是在其中一个数据库环境中只需要零点几秒,另一个环境需要50几秒,其中两个环境的数据量,前者
    50多条,后者100多条,不知道是什么原因了,请大侠们指教。
      

  5.   

        谢谢大家,查出问题来了,主要是因为基于查询的是个视图,当最后执行
    select 字段一,getrs(字段一) from A时出现表指向混乱,把视图改为表就可以了。