如何将一对多生成的数据合并成一张不包含重覆行的新表?

clxxj 2003-08-21 03:21:39
如下:A表中的a列和B表中的a列相关联
A表:
________
a b
1 aa
2 bb

B表:
_______
a c
1 aaa
1 bbb
1 ccc
2 ddd
2 eee

新表要求如下:

a b c d e ......

1 aa aaa bbb ccc
2 bb ddd eee
...全文
113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
clxxj 2003-08-21
  • 打赏
  • 举报
回复
现在开始看懂了一点.多谢楼上的指点!如实现马上给分.
clxxj 2003-08-21
  • 打赏
  • 举报
回复
还是看不懂.有没有简便一点的方法?
愉快的登山者 2003-08-21
  • 打赏
  • 举报
回复
1,建自定义函数
create function getstr(@id Nchar(4000))
returns Nvarchar(4000)
as
begin
declare @str Nvarchar(2000)
set @str=N''
select @str=@str+rtrim(c)+N' ' from B表 where a=@id
if @str<>N''
set @str=left(@str,len(@str)-1)
return @str
end

GO

2,
select a, b, dbo.getstr(a) as c from A表

愉快的登山者


◢◣◢◣◢◣
clxxj 2003-08-21
  • 打赏
  • 举报
回复
是啊,这点我也想到呀.但应该如何转换B表?还请楼上指点.
CrazyFor 2003-08-21
  • 打赏
  • 举报
回复
先把BB表转换成
a c d e ......

1 aaa bbb ccc
2 ddd eee

所以问题就是B表的转换了.


freeliu 2003-08-21
  • 打赏
  • 举报
回复
你的d、e列是从哪里来的?为什么1的d是bbb,而2的d就是eee?什么对应关系?

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧