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去掉重复的记录 |