sql server 中合并某个字段值的实例
有表如下:
如何获得如下结果:
解法
使用xml转换
代码如下:
复制代码 代码如下:
CREATE TABLE body
(
ID int,
BODY nvarchar(20)
)
go
INSERT INTO body VALUES(1,'aaaa')
INSERT INTO body VALUES(2,'bbbb')
INSERT INTO body VALUES(1,'cccccc')
INSERT INTO body VALUES(3,'ddddd')
go
SELECT * FROM body
SELECT distinct a.ID,stuff((SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')),1,1,'') ASBODY
FROM
body a
--具体思路是这样的:
SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')
--这条语句的作用是按照a中的ID查找body表中ID=a.ID的所有记录,并把它转换成一个xml(关于将查询集转换成xml的文章,你可以去看看)
stuff((SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')),1,1,'')
--这条语句的作用是把生成的xml前面的一个逗号去掉并转化成标量值
--最后用一个distinct去掉重复的记录
免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。
SQL Server代理服务无法启动的解决方法2019-01-20
asp.net连接查询SQL数据库并把结果显示在网页上(2种方2019-01-18
sql server 获取系统时间的方法2019-01-21
深入C++ string.find()函数的用法总结2019-01-18
SQL Server 聚集索引和非聚集索引的区别分析2019-02-22
关于sql server批量插入和更新的两种解决方案2019-01-19
SQL语句 一个简单的字符串分割函数2019-02-22
SQL Server数据库的高性能优化经验总结2019-02-22
sql动态行转列的两种方法2019-01-19
SQLServer 跨库查询实现方法2019-02-20