[Quote=引用 7 楼 jinjazz 的回复:]
create function dbo.test(@id int)
returns varchar(1000)
as
begin
declare @ret varchar(1000)
set @ret=''
select @ret=@ret+','+name2 from table2 where id1=@id
return @ret
end
go
select *,dbo.test(id1) from table2
create function dbo.test(@id int)
returns varchar(1000)
as
begin
declare @ret varchar(1000)
set @ret=''
select @ret=@ret+','+name2 from table2 where id1=@id
return @ret
end
go
select *,dbo.test(id1) from table2
楼上的都已经用最简单的oracle方法解决了。我就整一个复杂点的,赚点分
建立一个函数
create or replace function my_concat(n NUMBER)
return varchar2
is
type typ_cursor is ref cursor;
v_cursor typ_cursor;
v_temp varchar2(10);
v_result varchar2(4000):= '';
v_sql varchar2(200);
begin
v_sql := 'select name2 from TBL2 where id1=' || n ||' order by id1';
open v_cursor for v_sql;
loop
fetch v_cursor into v_temp;
exit when v_cursor%notfound;
v_result := v_result ||',' || v_temp;
end loop;
return substr(v_result,2);
end;
使用函数
SELECT TBL1.ID1, TBL1.NAME1 ,my_concat(TBL1.ID1) FROM TBL1 ;