sql里将重复行数据合并为一行,数据用逗号分隔(张高伟)
来源:互联网 发布:金鹰汇淘宝是正品嘛 编辑:程序博客网 时间:2024/05/20 12:24
一.定义表变量
DECLARE @T1 table
(
UserID int ,
UserName nvarchar(50),
CityName nvarchar(50)
);
insert into @T1 (UserID,UserName,CityName) values (1,'a','上海')
insert into @T1 (UserID,UserName,CityName) values (2,'b','北京')
insert into @T1 (UserID,UserName,CityName) values (3,'c','上海')
insert into @T1 (UserID,UserName,CityName) values (4,'d','北京')
insert into @T1 (UserID,UserName,CityName) values (5,'e','上海')
select * from @T1
-----最优的方式
SELECT CityName,STUFF((SELECT ',' + UserName FROM @T1 subTitle WHERE CityName=A.CityName FOR XML PATH('')),1, 1, '') AS A
FROM @T1 A
GROUP BY CityName
----第二种方式
SELECT B.CityName,LEFT(UserList,LEN(UserList)-1)
FROM (
SELECT CityName,(SELECT UserName+',' FROM @T1 WHERE CityName=A.CityName FOR XML PATH('')) AS UserList
FROM @T1 A
GROUP BY CityName
) B
stuff(select ',' + fieldname from tablename for xml path('')),1,1,'')
这一整句的作用是将多行fieldname字段的内容串联起来,用逗号分隔。
for xml path是SQL Server 2005以后版本支持的一种生成XML的方式。
stuff函数的作用是去掉字符串最前面的逗号分隔符。
- sql里将重复行数据合并为一行,数据用逗号分隔(张高伟)
- sql里将重复行数据合并为一行,数据用逗号分隔
- 将一张表中的数据根据某行数据合并,并将另一行数据以逗号分隔合并
- 将多行数据合并为一行
- Oracle 联接查询,字表多行字段合并为一行,以逗号分隔的查询SQL
- T_SQL 将一列多行数据合并为一行
- T_SQL 将一列多行数据合并为一行
- T_SQL 将一列多行数据合并为一行
- T_SQL 将一列多行数据合并为一行
- MS-SQL 多行数据合并为一行
- SQL将一列多行数据转换为一行
- 将多行数据合并成一行
- 将用逗号分隔的字符串字段转为对应的多行数据
- oracle10g 多行数据合并为一行
- mysql多行数据合并为一行
- MySQL两行数据合并一行sql
- sql将列转换为以逗号分隔的字符串
- Oracle,MySQL多列数据用逗号分隔一行展示
- C++ pair函数和sort函数学习
- Angular React 和 Vue的比较
- 基于单应矩阵分解的位姿提取方法
- Scrapy工作原理(流程)
- html禁用鼠标右键
- sql里将重复行数据合并为一行,数据用逗号分隔(张高伟)
- 几种图像变换
- 开源实时日志分析
- 优先使用TimeUnit类中的sleep()
- 先显示默认图片·,等到应该显示的图片加载完成之后再显示加载之后的图片
- hihaCoder1042—跑马圈地(枚举)
- Understanding AMQP
- 第十五章:使用Canvas绘图(2D上下文)
- java面试必备