您现在的位置是:网站首页> 编程资料编程资料
sql server 中合并某个字段值的实例_MsSql_
2023-12-09
143人已围观
简介 sql server 中合并某个字段值的实例_MsSql_
有表如下:
如何获得如下结果:
解法
使用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去掉重复的记录
相关内容
- MySQL数据库表约束讲解_Mysql_
- MySQL数据库实验之 触发器和存储过程_Mysql_
- 我叫MT全民福利 符石大返还十倍活动介绍说明_手机游戏_游戏攻略_
- 我叫MT摇钱树怎么玩 我叫MTv4.0版摇钱树金币掉落实测_手机游戏_游戏攻略_
- 我叫MT4.0版本正义徽章每日消耗巨大 获取攻略_手机游戏_游戏攻略_
- 雷霆战机首充送4星曙光及寻宝送电浆炮怎么领在哪领取_手机游戏_游戏攻略_
- 全民精灵公测活动推荐_手机游戏_游戏攻略_
- 天天酷跑都教授上线时间_天天酷跑都教授属性技能介绍说明_手机游戏_游戏攻略_
- 天天飞车获得18888金币条件是什么及18888金币怎么领_手机游戏_游戏攻略_
- 天天酷跑周末登陆送1888金币和288积分在哪领_手机游戏_游戏攻略_