SqlServer 表数据统计,相同属性的汇总到一列,并用逗号隔开
2016-02-28 12:23
417 查看
select DISTINCT b.DynamicID,STUFF((//stuff是截取第一个逗号 select ','+ a.RealName from ( select z.DynamicID,u.RealName from t_Dynamic_Zambia z left join t_sys_User u on z.UserID=u.ID )a where a.DynamicID=b.DynamicID for xml path('')//关键语句,以xml的格式输出 ),1,1,'') as namelist from ( select z.DynamicID,u.RealName from t_Dynamic_Zambia z left join t_sys_User u on z.UserID=u.ID )b
在实际应用中,很容易有这样的需求,比如学生表,选课表,统计出所有课程都有哪些学生选择了,表格一共两列,一列课程,一列选课学生。
表a和b可以换成单表来测试,
相关文章推荐
- ORACLE的dblink突然连不上的问题分析
- SQL分页排序的实现
- PL/SQL之游标属性详解
- INBOUND_CONNECT_TIMEOUT与SQLNET.INBOUND_CONNECT_TIMEOUT小结
- MySQL递归查询
- Mysql表结构为InnoDB类型从ibd文件恢复数据
- 初学数据库——数据模型之关系数据模型
- sqlserver2014 sa无法登录[已解决]
- Win7系统Oracle11g服务端和客户端连接数据库配置
- 读ibatis源码—为什么说SqlMapClient是线程安全的
- PowerDesigner根据PhysicalDiagram产生数据库--连接mysql
- 经常被使用的MySQL函数
- Mysql比较操作符概述
- 两个mysql的函数
- mysql存储过程--返回两个时间的最大最小值
- oracle添加列
- MySQL的存储过程例子
- Oracle_MySQL_SQLServer_JDBC分页
- 修改数据库表字段
- mysql之旅【第二篇】