一.定义表变量

 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函数的作用是去掉字符串最前面的逗号分隔符。

最新文章

  1. iOS两种方式加载图片的区别
  2. 关于Jquery动画滞后问题(转)
  3. hdu4497 GCD and LCM ——素数分解+计数
  4. maven项目显示红叉的解决方法
  5. Append加载动态轮播
  6. SQL调优日志--内存问题
  7. Python学习入门基础教程(learning Python)--5.3 Python写文件基础
  8. Laravel查询构造器的使用方法整理
  9. 多线程编程学习笔记——异步调用WCF服务
  10. 自定义Cordova插件(基础篇)
  11. 《Java大学教程》—第13章 程序包
  12. ffmpeg源码安装
  13. 二、Java神经网络框架Neuroph的使用和架构分析
  14. ELK使用2-Kibana使用
  15. Flip Game (高斯消元 || dfs)
  16. 【算法和数据结构】_15_小算法_打印EOF的值
  17. 搭建Zookeepeer源码工程
  18. Linux软件包安装
  19. Java多线程-----匿名内部类创建线程
  20. FastAdmin 开发第三天:安装 FastAdmin

热门文章

  1. shell 脚本实战笔记(6)--集群环境配置检测
  2. Sobel算子 (转)
  3. Spring-IOC之前世今生
  4. 2016 ACM/ICPC Asia Regional Shenyang Online 1009/HDU 5900 区间dp
  5. 精妙无比 8款HTML5动画实例及源码
  6. c 函数及指针学习 7
  7. UVa 1592 数据库(c++pair)
  8. spark_updateStateByKey
  9. hdu5438(2015长春赛区网络赛1002)拓扑序+DFS
  10. hdu3416 最短路+最大流