建函数
create function f_calc(@id int)
returns varchar(8000)
begin
declare @aaa varchar(8000)
select @aaa=isNull(@aaa,'')+name1+','
from aaa
where linkid=@id
set @aaa=substring(@aaa,1,len(@aaa)-1)
return @aaa
end
select c.name1,dbo.f_calc(c.id)
from (
select a.name1,b.linkid
from table1 a,(
select *,substring(name2,2,len(name2)-1) as myid from table2 ) b
where a.id1=b.myid
) c
经测试成功
create function f_calc(@id int)
returns varchar(8000)
begin
declare @aaa varchar(8000)
select @aaa=isNull(@aaa,'')+name1+','
from aaa
where linkid=@id
set @aaa=substring(@aaa,1,len(@aaa)-1)
return @aaa
end
select c.name1,dbo.f_calc(c.id)
from (
select a.name1,b.linkid
from table1 a,(
select *,substring(name2,2,len(name2)-1) as myid from table2 ) b
where a.id1=b.myid
) c
经测试成功
错了,
应该是
select c.linkid as id2,dbo.f_calc(c.linkid) as name3
from (
select a.name1,b.linkid
from table1 a,(
select *,substring(name2,2,len(name2)-1) as myid from table2 ) b
where a.id1=b.myid
) c
group by c.linkid
这时候仅作为外键存在的table1,没什么关系,真正的结果是拼接 而成的……
想法不太成熟,如有不对,还望指正。
我晕。你可能理解错了哟。
楼主那两个表的关系与果结似忽?
------------------------------
- 1 b1,b2,b3
- 2 b4
- 3 b5,b6
sankis()是对的
结果应该是
- id2 name3
------------------------------
- 1 b1,b2,b3
- 2 b4
- 3 b5,b6