有一个表A和表B,
A表rec_id,aa,bb
01 a1 b1
02 a2 b2
b 表有rec_id, name
01 name1
01 name2
02 name1
02 name2
02 name3
我想得到如下的结果
rec_id,name,aa,bb
01 name1,name2
02 name1,name2,name3
请问如何写
---------------------------------------------------------------
先 建自定义函数
select @str=@str+','+name from b where rec_id=@inputID
return @str
select a.rec_id,yourFunctionName(a.rec_id),a.aa,a.bb from a
---------------------------------------------------------------
可以不必循环:
create function getstr(@id Nchar(10))
returns Nvarchar(2000)
as
begin
declare @str Nvarchar(2000)
set @str=N''
select @str=@str+N','+rtrim(name) from b
where rec_id=@id
set @str=right(@str,len(@str)-1)
return @str
end
GO
调用:
select a.rec_id,dbo.getstr(a.rec_id),a.aa,a.bb from a