sqlserver中合并某个字段值的实例
2023-06-13 09:14:48 时间
有表如下:
如何获得如下结果:
解法
使用xml转换
代码如下:
CREATETABLEbody
(
IDint,
BODYnvarchar(20)
)
go
INSERTINTObodyVALUES(1,"aaaa")
INSERTINTObodyVALUES(2,"bbbb")
INSERTINTObodyVALUES(1,"cccccc")
INSERTINTObodyVALUES(3,"ddddd")
go
SELECT*FROMbody
SELECTdistincta.ID,stuff((SELECT","+BODYFROMbodyWHEREID=a.IDFORxmlpath("")),1,1,"")ASBODY
FROM
bodya
--具体思路是这样的:
SELECT","+BODYFROMbodyWHEREID=a.IDFORxmlpath("")
--这条语句的作用是按照a中的ID查找body表中ID=a.ID的所有记录,并把它转换成一个xml(关于将查询集转换成xml的文章,你可以去看看)
stuff((SELECT","+BODYFROMbodyWHEREID=a.IDFORxmlpath("")),1,1,"")
--这条语句的作用是把生成的xml前面的一个逗号去掉并转化成标量值
--最后用一个distinct去掉重复的记录
相关文章
- 力控结合SQLServer拓展网络应用(力控与sqlserver)
- 分布式SqlServer:改变数据存储方式的新动力(分布式sqlserver)
- MySQL数据库管理员的SQLServer靶机挑战(sqlserver靶机)
- 使用SQLServer加速数据处理(sqlserver跑数据)
- 端SQLServer数据库开发优化:前端编辑技巧介绍(sqlserver编辑前)
- 转SQLServer引领下的相片流转路径(sqlserver相片流)
- SQLServer数据库规则与约束(sqlserver的约束)
- sqlserver数据库的关联查询技巧(sqlserver的关联)
- 使用SQLServer模拟器提升学习效率(sqlserver模拟器)
- 使用SQLServer查询空表信息(sqlserver查空表)
- SQLServer中嵌套循环的简便之道(sqlserver嵌套循环)
- SQL Server与填充——不可或缺的两件事(sqlserver 填充)
- 利用SQL Server改善数据库性能的技术(sqlserver同义词)
- SQLServer轻松获取小时内数据(sqlserver取小时)
- 数据如何避免SQLServer中的重复数据(sqlserver中重复)
- 在SQL Server中使用AS进行表达式(sqlserver中as)
- SQL Server:不断进化的数据库版本(sqlserver个版本)
- SQL Server与Visual Studio配合使用,打造完美数据库解决方案(sqlserver与vs)
- 企业中使用PS和SQLServer数据库进行管理提升业务效率(ps sqlserver)
- sqlserver中千万数量级分页存储过程代码
- sqlserver临时表的用法
- SQLSERVER先判断视图是否存在然后再创建视图的语句