zoukankan      html  css  js  c++  java
  • sql server 中某个字段值合并【转】

    一、问题

    有表如下:

    如何获得如下结果:

    二、解法一

    使用xml转换

    代码如下:

    01 CREATE TABLE body
    02 (
    03     ID int,
    04     BODY nvarchar(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 xml path('')),1,1,'') ASBODY
    15 FROM
    16 body a
    17   
    18   
    19 --具体思路是这样的:
    20 SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')
    21 --这条语句的作用是按照a中的ID查找body表中ID=a.ID的所有记录,并把它转换成一个xml(关于将查询集转换成xml的文章,
    22 --博客园有很多的,你可以去看看)
    23 stuff((SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')),1,1,'')
    24 --这条语句的作用是把生成的xml前面的一个逗号去掉并转化成标量值
    25 --最后用一个distinct去掉重复的记录
  • 相关阅读:
    站立会议第1天
    博客园用户体验
    风险评估
    寻找正整数中1的个数
    每个小组对本组的意见
    对每个小组的评论和建议
    每日scrum(六)
    每日scrum(五)
    分析电脑控制的丹佛机场行李系统
    每日scrum(四)
  • 原文地址:https://www.cnblogs.com/workformylove/p/2988273.html
Copyright © 2011-2022 走看看