这样的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
请问如何写
问题点数:100、回复次数:7Top
1 楼hmily1688(没什么好说的)回复于 2002-12-02 10:48:51 得分 0
错了,我想得到如下的结果
rec_id, name, aa, bb
01 name1,name2 a1 b1
02 name1,name2,name3 a2 b2
Top
2 楼CrazyFor(冬眠的鼹鼠)回复于 2002-12-02 10:53:45 得分 35
先 建自定义函数
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 aTop
3 楼hmily1688(没什么好说的)回复于 2002-12-02 11:03:36 得分 0
好像自定义函数写得不对吧,应该加一个循环吧Top
4 楼Haiwer(海阔天空)回复于 2002-12-02 11:08:52 得分 65
可以不必循环:
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
Top
5 楼CoolAbu(阿卜-Never Stop(★★★★))回复于 2002-12-02 11:12:11 得分 0
G ZTop
6 楼hmily1688(没什么好说的)回复于 2002-12-02 11:23:32 得分 0
海兄:我建了这个函数,在english query中出现
招行这个函数时出现
服务器: 消息 208,级别 16,状态 1,过程 getstr,行 10
对象名 'b' 无效。
Top
7 楼CrazyFor(冬眠的鼹鼠)回复于 2002-12-02 11:27:14 得分 0
TO:hmily1688(混在石家庄)
把B改成你的表名Top




