这样的sql 语句如何写

hmily1688 2002-12-02 10:47:52
有一个表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
请问如何写
...全文
57 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CrazyFor 2002-12-02
  • 打赏
  • 举报
回复
TO:hmily1688(混在石家庄)

把B改成你的表名
hmily1688 2002-12-02
  • 打赏
  • 举报
回复
海兄:我建了这个函数,在english query中出现
招行这个函数时出现
服务器: 消息 208,级别 16,状态 1,过程 getstr,行 10
对象名 'b' 无效。
CoolAbu 2002-12-02
  • 打赏
  • 举报
回复
G Z
昵称被占用了 2002-12-02
  • 打赏
  • 举报
回复
可以不必循环:

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
hmily1688 2002-12-02
  • 打赏
  • 举报
回复
好像自定义函数写得不对吧,应该加一个循环吧
CrazyFor 2002-12-02
  • 打赏
  • 举报
回复
先 建自定义函数
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
hmily1688 2002-12-02
  • 打赏
  • 举报
回复
错了,我想得到如下的结果
rec_id, name, aa, bb
01 name1,name2 a1 b1
02 name1,name2,name3 a2 b2

34,592

社区成员

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

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