tbale1:
no content
==========================
1 aa
1 bb
1 cc
2 mm
2 nn
3 oo
============================
要求一句sql得到如下结果:
no content
=================================
1 aa,bb,cc
2 mm,nn
3 oo
no content
==========================
1 aa
1 bb
1 cc
2 mm
2 nn
3 oo
============================
要求一句sql得到如下结果:
no content
=================================
1 aa,bb,cc
2 mm,nn
3 oo
create table tbale1(no int, content varchar2(100));
insert into tbale1
select 1,'aa' from dual union all
select 1,'bb' from dual union all
select 1,'cc' from dual union all
select 2,'mm' from dual union all
select 2,'nn' from dual union all
select 3,'oo' from dual;
--建立函数
create or replace function sum_string(v_sql varchar2)
return varchar2
as
type cur_alldata is ref cursor;
l_alldata cur_alldata;
v_row varchar2(99);
v_sum varchar2(3999);
begin
open l_alldata for v_sql;
loop
fetch l_alldata into v_row;
exit when l_alldata%notfound;
v_sum := v_sum||','||v_row;
end loop;
v_sum := substr(v_sum,2);
close l_alldata;
return v_sum;
end;
--执行查询
select distinct no,sum_string('select content from tbale1 where no='''||no||''' group by no,content') from tbale1
--执行结果
1 aa,bb,cc
2 mm,nn
3 oo