sql里将重复行数据合并为一行,数据用逗号分隔
2024-10-14 10:59:54
一.定义表变量 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函数的作用是去掉字符串最前面的逗号分隔符。
最新文章
- iOS两种方式加载图片的区别
- 关于Jquery动画滞后问题(转)
- hdu4497 GCD and LCM ——素数分解+计数
- maven项目显示红叉的解决方法
- Append加载动态轮播
- SQL调优日志--内存问题
- Python学习入门基础教程(learning Python)--5.3 Python写文件基础
- Laravel查询构造器的使用方法整理
- 多线程编程学习笔记——异步调用WCF服务
- 自定义Cordova插件(基础篇)
- 《Java大学教程》—第13章 程序包
- ffmpeg源码安装
- 二、Java神经网络框架Neuroph的使用和架构分析
- ELK使用2-Kibana使用
- Flip Game (高斯消元 || dfs)
- 【算法和数据结构】_15_小算法_打印EOF的值
- 搭建Zookeepeer源码工程
- Linux软件包安装
- Java多线程-----匿名内部类创建线程
- FastAdmin 开发第三天:安装 FastAdmin