create table t1(col1 varchar2(10),col2 varchar2(10)) create table t2(col1 varchar2(10),col2 varchar2(10)) insert into t1 values ('A','B') insert into t2 values ('A','C') insert into t2 values ('A','D')CREATE OR REPLACE function CSDN.getStr(col varchar2) return varchar2 as cursor t is select col2 from t2 where col1 = col; str varchar2(20); str2 varchar2(2000); begin str2 := ''; open t; LOOP FETCH t INTO str; EXIT WHEN t%NOTFOUND; str2 := str2 || str || ','; end loop; close t; return substr(str2,0,length(str2)-1); end;select col1,col2,getstr(col1) as col3 from t1
create table t2(col1 varchar2(10),col2 varchar2(10))
insert into t1 values ('A','B')
insert into t2 values ('A','C')
insert into t2 values ('A','D')CREATE OR REPLACE function CSDN.getStr(col varchar2)
return varchar2
as
cursor t is
select col2 from t2 where col1 = col;
str varchar2(20);
str2 varchar2(2000);
begin
str2 := '';
open t;
LOOP
FETCH t INTO str;
EXIT WHEN t%NOTFOUND;
str2 := str2 || str || ',';
end loop;
close t;
return substr(str2,0,length(str2)-1);
end;select col1,col2,getstr(col1) as col3
from t1
http://community.csdn.net/Expert/topic/4161/4161213.xml?temp=.7041895
仔细研究研究,这个帖子可以实现你的要求。