读书人

求一条sql语句。大姐 帮帮小弟吧~

发布时间: 2012-01-18 00:23:26 作者: rapoo

求一条sql语句。。在线等。。急~~~各位大哥大姐 帮帮小弟吧~~~
表A
aid aname
----------
1 aa
2 bb
3 cc
表B
bid bname aid bpath
---------------------
1 ds 1 p1
2 fsd 1 p2
3 ds 2 p3
4 dgs 3 p4
5 fds 3 p5

想要的结果:

aid bpath
-------------
1 p1,p2
2 p3
3 p4,p5


各位大哥大姐 帮帮小弟吧~~~



[解决办法]
Create function GetbPath(@aid int)returns varchar(1000)Begindeclare @str varchar(1000)set @str = ' 'select @str = @str + bpath+ ', ' from b where aid=@aidif @str!= ' ' set @str = left(@str,len(@str)-1)return @strend
[解决办法]
然后:select a.aid,dbo.GetbPath(a.aid) from a
[解决办法]
cpp2017(慕白兄) 方法不错
我刚准备说用游标的;呵呵
[解决办法]
Create table tb (aid int,bpath varchar(2))

insert into tb select 1, 'p1 '
insert into tb select 1, 'p2 '
insert into tb select 2, 'p3 '
insert into tb select 3, 'p4 '
insert into tb select 3, 'p5 '

Create function aid(@aid int)
returns varchar(1000)
begin
declare @str varchar(1000)
set @str= ' '
select @str=@str+ ', '+ bpath from tb where aid=@aid
set @str=right(@str,len(@str)-1)
return(@str)
End


select aid,dbo.aid(aid) from tb a
group by aid

aid
----------- ----------------------------------------------------------------------------------------------------------------
1 p1,p2
2 p3
3 p4,p5

(所影响的行数为 3 行)
[解决办法]
慢了一步
[解决办法]
来晚了
[解决办法]
不用存储过程可以实现吗??

读书人网 >asp.net

热点推荐