示例表 tb 数据如下

id value
—————
1 aa
1 bb
2 aaa
2 bbb
2 ccc

第一种

SELECT id,
[val]=( SELECT [value] +','
FROM tb AS b
WHERE b.id = a.id
FOR XML PATH('') )
FROM tb AS a

第一种显示结果

1 aa,bb, 
1 aa,bb, 
2 aaa,bbb,ccc, 
2 aaa,bbb,ccc, 
2 aaa,bbb,ccc,

第二种

SELECT id,
[val]=( SELECT [value] +','
FROM tb AS b
WHERE b.id = a.id
FOR XML PATH('') )
FROM tb AS a
GROUP BY id


第二种显示

1 aa,bb, 
2 aaa,bbb,ccc,

第三种 (用STUFF函数替换掉首端的逗号)

SELECT id,    
[val]=STUFF( (SELECT ','+[value]
FROM tb AS b
WHERE b.id = a.id
FOR XML PATH('')) , 1 , 1 , '' )
FROM tb AS a
GROUP BY id

第三种显示结果 
1 aa,bb 
2 aaa,bbb,ccc

STUFF 函数将字符串插入另一字符串。它在第一个字符串中从开始位置删除指定长度的字符;然后将第二个字符串插入第一个字符串的开始位置。
STUFF ( character_expression , start , length ,character_expression_insert )

第四种 (用REPLACE函数将所有空格替换成逗号)

SELECT id,    
[val]= REPLACE( (SELECT [value] AS [data()]
FROM tb AS b
WHERE b.id = a.id
FOR XML PATH('')) , ' ', ',')
FROM tb AS a
GROUP BY id

结果与第三种一样。

SQL合并多行查询到一行的更多相关文章

  1. 【HANA系列】SAP HANA SQL合并多行操作

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL合并多行 ...

  2. 合并多行查询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数 (转)

    转自: http://www.cnblogs.com/aolin/archive/2011/04/12/2014122.html 示例表 tb 数据如下 id value—————1 aa1 bb2 ...

  3. T-SQL 合并多行数据显示到一行

    思路: 自连接,使用For XML Path('')和STUFF函数 SELECT * FROM STUDENT Name                      Team------------- ...

  4. 使用自连接、for xml path('')和stuff合并显示多行数据到一行中(转)

    原文: http://njm.iteye.com/blog/795881 --使用 自连接.for xml path('')和stuff合并显示多行数据到一行中 --注 --1.计算列可以不用包含在聚 ...

  5. SQL实现多行合并一行 .

    ORACLE纯SQL实现多行合并一行[转] 项目中遇到一个需求,需要将多行合并为一行.表结构如下:NAME                            Null           Type ...

  6. SQL Server 将两行或者多行拼接成一行数据

    一个朋友,碰到一个问题. 就是查询出来的结果集,需要每隔三行.就将这三行数据以此拼接为一行显示.起初我想着用ROW_NUMBER加CASE WHEN去做,发现结果并非我预期那样. 结果如下: 由于别人 ...

  7. SQL: 从一个表随机读取一行或几行记录的问题

    比如ms sql 2000,随机读取了一行记录: SELECT TOP 1 * FROM [tablename] ORDER BY NEWID() 遇到的问题是,如果这个表记录不多,比如几十或几百.几 ...

  8. Expression构建DataTable to Entity 映射委托 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 sql server 多行数据合并成一列 C# 字符串大写转小写,小写转大写,数字保留,其他除外 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法 纯CSS打造淘宝导航菜单栏 C# Winform

    Expression构建DataTable to Entity 映射委托   1 namespace Echofool.Utility.Common { 2 using System; 3 using ...

  9. SQL中合并多行记录的方法总汇

    -- =============================================================================-- Title: 在SQL中分类合并数 ...

随机推荐

  1. OWIN support for the Web API 2 and MVC 5 integrations in Autofac

    Currently, in the both the Web API and MVC frameworks, dependency injection support does not come in ...

  2. yum -y install与yum install有什么不同

    yum -y install 包名(支持*) :自动选择y,全自动 yum install 包名(支持*) :手动选择y or n yum remove 包名(不支持*) rpm -ivh 包名(支持 ...

  3. Unlink of file '.git/objects/pack/pack-***.pack' failed. Should I try again? (y/n) (转)

    git pull的时候遇到 Unlink of file '.git/objects/pack/pack-***.pack' failed. Should I try again? (y/n) y 于 ...

  4. ES6箭头函数

    1. 无参数 var sum = () => 1 + 2; // 等同于: var sum = function() { return 1 + 2; } 2. 返回单个值 var reflect ...

  5. java 利用反射机制,获取实体所有属性和方法,并对属性赋值

    一个普通的实体Person: private int id; private String name; private Date createdTime;...//其它字段// get set方法 . ...

  6. ng-repeat指令使用详解

    ng-repeat指令使用详解 link: function(scope,element,attr) scope.$index: if(scope.$last == true){} attr['mng ...

  7. oracle唯一索引与普通索引的区别和联系以及using index用法

    oracle唯一索引与普通索引的区别和联系 区别:唯一索引unique index和一般索引normal index最大的差异是在索引列上增加一层唯一约束.添加唯一索引的数据列可以为空,但是只要尊在数 ...

  8. rose中设置组合

    1.在工具栏选择 "association" (关联).2.编辑role B 属性 open specital , role B detail ,multiplic(重数) 为1, ...

  9. Java基础相关总结

    临近面试,权当复习了吧 final相关 定义常量的方法  eg:final int i=0;//则i不能被修改 final修饰的类不能被继承,因此没有子类,且它的类中的方法默认是final final ...

  10. 自定义select控件开发

    目的:select下拉框条目太多(上百),当用户选择具体项时会浪费用户很多时间去寻找,因此需要一个搜索框让用户输入关键字来匹配列表,便于用户选择 示例图: 1.html结构 <div class ...