经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
SQL Server中将多行数据拼接为一行数据(一个字符串)
来源:cnblogs  作者:1sa2sa  时间:2018/12/7 9:22:25  对本文有异议

表A中id与表B中aid为一对多的关系

例如:

表A:

id name
a1 tom
a2 lily
a3 lucy

表B:

id aid value
b1 a1 B1
b2 a1 B2
b3 a2 B3
b4 a3 B4
b5 a2 B5
b6 a3 B6
b7 a3 B7

使用for xml path('') 和stuff合并显示多行数据到一行中   :

第一种,不使用stuff,结果如下:

  1. select id, [val]=(
  2. select [value] +',' from tb as b where b.id = a.id for xml path('')
  3. ) from tb as a
  4. group by id

结果:

id val
a1 B1,B2,
a2 B3,B5,
a3 B4,B6,B7,

 

 

第二种,使用stuff将最后的逗号去掉

  1. select id, [val]=stuff((
  2. select ','+[value] from tb as b where b.id = a.id for xml path('')),1,1,'')
  3. from tb as a
  4. group by id

结果:

id val
a1 B1,B2
a2 B3,B5
a3 B4,B6,B7
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号