这样的sql 语句如何写

有一个表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

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus