求sql拼接组合字段

SuperMsdnExpert 2012-09-06 01:33:48
info表

id cust_num compCode
1 a 20000001
2 b 20000002


tpm表

cust_num name
a 电脑
a 电视机
b 电视机
b 电冰箱
b 洗衣机

查询出来的结果

cust_num compcode product
a 20000001 电脑,电视机
b 20000002 电视机,电冰箱,洗衣机
...全文
219 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
以学习为目的 2012-09-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
SQL code

--开始查询
select cust_num,compCode,product=stuff((select ','+name from tpm
where t.cust_num=cust_num for xml path('')),1,1,'')
from info t
--测试结果……
[/Quote]
+1
DBA_磊仔 2012-09-08
  • 打赏
  • 举报
回复
CLR程序集也可以,但是我用这个CLR经常字段太长就报错,又要用回XML,不会C#就是悲剧
keguangli 2012-09-08
  • 打赏
  • 举报
回复
iamaitman正解。
我一般用自定义函数。
keguangli 2012-09-08
  • 打赏
  • 举报
回复
iamaitman正解。
我一般用自定义函数。
  • 打赏
  • 举报
回复

--开始查询
select cust_num,compCode,product=stuff((select ','+name from tpm
where t.cust_num=cust_num for xml path('')),1,1,'')
from info t
--测试结果
/*
cust_num compCode product
-------- ----------- -----------------------
a 20000001 电脑,电视机
b 20000002 电视机,电冰箱,洗衣机
*/

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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