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
SELECT col1,wmsys.wm_concat(col2) FROM tb group by col1;
同志们啊,用你们的语句半天没反应呢,我自己写了个方法 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多条,不知道是什么原因了,请大侠们指教。
谢谢大家,查出问题来了,主要是因为基于查询的是个视图,当最后执行 select 字段一,getrs(字段一) from A时出现表指向混乱,把视图改为表就可以了。
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
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多条,不知道是什么原因了,请大侠们指教。
select 字段一,getrs(字段一) from A时出现表指向混乱,把视图改为表就可以了。