举例:create table dali.test(a int,b varchar(10));
insert into dali.test values(1,'aa');
insert into dali.test values(1,'aa');
insert into dali.test values(3,'bb');
insert into dali.test values(3,'cc');
/create or replace function dali.get_value(p_id int)
return varchar2
is
cursor t_sor is select b from dali.test where a=p_id;
str varchar2(50);
begin
for v_sor in t_sor loop
str:=str||v_sor.b||',';
end loop;
return substr(str,1,length(str)-1);
end ;
/
select a,dali.get_value(a) b from dali.test;
insert into dali.test values(1,'aa');
insert into dali.test values(1,'aa');
insert into dali.test values(3,'bb');
insert into dali.test values(3,'cc');
/create or replace function dali.get_value(p_id int)
return varchar2
is
cursor t_sor is select b from dali.test where a=p_id;
str varchar2(50);
begin
for v_sor in t_sor loop
str:=str||v_sor.b||',';
end loop;
return substr(str,1,length(str)-1);
end ;
/
select a,dali.get_value(a) b from dali.test;
insert into dali.test values(1,'aa');
insert into dali.test values(1,'aa');
insert into dali.test values(3,'bb');
insert into dali.test values(3,'cc');select a,bb from
(select a,rtrim(tt.b||','||
lead(tt.b,1)over(partition by tt.a order by tt.b)) bb,
row_number() over(partition by tt.a order by tt.b) x
from t1 tt
)
where x=1;
create table t1(a int,b varchar(10));
insert into t1 values(1,'aa');
insert into t1 values(1,'aa');
insert into t1 values(3,'bb');
insert into t1 values(3,'cc');
select a,bb from
(select a,rtrim(tt.b||','||
lead(tt.b,1)over(partition by tt.a order by tt.b)) bb,
row_number() over(partition by tt.a order by tt.b) x
from t1 tt
)
where x=1;