sql server 中某个字段值合并【转】
2013-03-29 09:47
204 查看
一、问题
有表如下:
如何获得如下结果:
二、解法一
使用xml转换
代码如下:
viewsourceprint?
有表如下:
如何获得如下结果:
二、解法一
使用xml转换
代码如下:
01 | CREATE TABLE body |
02 | ( |
03 | ID int , |
04 | BODYnvarchar(20) |
05 | ) |
06 | go |
07 | INSERT INTO body VALUES (1, 'aaaa' ) |
08 | INSERT INTO body VALUES (2, 'bbbb' ) |
09 | INSERT INTO body VALUES (1, 'cccccc' ) |
10 | INSERT INTO body VALUES (3, 'ddddd' ) |
11 | go |
12 | SELECT * FROM body |
13 |
14 | SELECT distinct a.ID,stuff(( SELECT ',' +BODY FROM body WHERE ID=a.ID FOR xmlpath( '' )),1,1, '' ) AS BODY |
15 | FROM |
16 | bodya |
17 |
18 |
19 | --具体思路是这样的: |
20 | SELECT ',' +BODY FROM body WHERE ID=a.ID FOR xmlpath( '' ) |
21 | --这条语句的作用是按照a中的ID查找body表中ID=a.ID的所有记录,并把它转换成一个xml(关于将查询集转换成xml的文章, |
22 | --博客园有很多的,你可以去看看) |
23 | stuff(( SELECT ',' +BODY FROM body WHERE ID=a.ID FOR xmlpath( '' )),1,1, '' ) |
24 | --这条语句的作用是把生成的xml前面的一个逗号去掉并转化成标量值 |
25 | --最后用一个distinct去掉重复的记录 |
相关文章推荐
- SQL Server 将Id相同的字段合并,并且以逗号隔开
- SQL SERVER中 用FOR XML PATH将查询结果以XML输出 然后应用于 sql 合并字段功能介绍
- sql server同一字段多条记录的合并( sql server 2008以上)
- sql server 2005 A字段相同数据的B字段合并
- SQL Server 联表字段合并查询
- sql server 中拥有相同字段值的记录某个字段合并问题解答
- sql server 中合并某个字段值的实例
- [sql server] 字段合并
- sql server 合并字段值的一般做法,共三种
- sql server 多个字段合并
- sql server 中合并某个字段值的实例
- SQL Server中的字段合并
- sql server 中某个字段值合并【转】
- asp.net c#读取sql server 图像字段
- SQL Server连接字段的方法
- SQL Server DTS向导,字段转换出现202和200错误
- SQL SERVER 2008不能修改表的解决方法(增加字段、修改字段名)
- MS-SQL SERVER单列合并的四种常用方法