SQLServer 中实现类似MySQL中的group_concat函数的功能

SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起。

后在网上查找,找到了可以实现此功能的方法,特此记录下。

SELECT
	a,
	stuff((SELECT ‘,‘ + b FROM #tb WHERE a = t.a FOR xml path(‘‘)),
		1,
		1,
		‘‘
	)AS b from  # tb AS t
GROUP BY
	a;

先对a列进行分组,对分组中的b以Xml形式输出,再使用stuff将开关多出的,删掉。

具体实现参考:http://blog.itnmg.net/sqlserver-group_concat/

对于其实使用到的for xml path 参考 http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html

stuff 参考 http://msdn.microsoft.com/zh-cn/library/ms188043.aspx

时间: 2024-08-10 01:58:44

SQLServer 中实现类似MySQL中的group_concat函数的功能的相关文章

sqlserver row_number 类似 mysql中 limit 用法

select * from ( select row_number() over(ORDER BY inspecdate desc,inspectime DESC,itemorder asc ) as num, contentid,quesioncontext,tempid,tempname,itemid,itemtext,belongteam,teamname,inspecdate, inspectime,contenttext,createperson,newaddtime,updateti

Sql Server 中 PIVOT在mysql 中的实现

sql server 中项目代码: select isnull(MI线,0) as F_MIValue,isnull(SMT线,0) as F_SMTValue,isnull(空压站,0) as F_ChangePre, isnull(Repair线,0) as F_RepairValue,isnull(Assembly线,0) as F_AssemblyValue from (select F_Name,CONVERT(decimal(16,2),sum(F_Value)) as F_Valu

MySQL在使用group_concat()函数数据被截取

遇到问题: 项目中有个需求,MySQL中存储的是树状的数据.现在给出一个节点,需要从Mysql数据库中取出这个节点下所有的节点.采用MySQL的函数. 函数如下: CREATE DEFINER=`root`@`%` FUNCTION `getMemberChildList`(rootId BIGINT) RETURNS mediumtext CHARSET utf8 BEGIN DECLARE str VARCHAR(60000) ; DECLARE cid VARCHAR(60000) ; S

MySQL concat concat_ws group_concat 函数(连接字符串)

CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. mysql> select concat('11','22','33'); +------------------------+ | concat('11','22','33') | +------------------------+ | 112233 | +------------------------+ mysql> select concat_ws(',','

Mysql 列转行group_concat函数,与行转列(原创)

1.正常情况. SELECT JoinEventIds from nt_mainnum 2.使用group_concat函数 select group_concat(JoinEventIds) from nt_mainnum 3.使用SUBSTRING_INDEX和CROSS JOIN将列里面的的数字都拆分出来. 方法一(网上查询的方法): 建配置表: CREATE TABLE digits (digit INT(1)); INSERT INTO digits VALUES (0), (1),

web.py中实现类似Django中的ORM的查询效果

Django中的对象查询 Django框架自带了ORM,实现了一些比较强大而且方便的查询功能,这些功能和表无关.比如下面这个例子: class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') >>> Question.objects.all() >>> Question.ob

MySQL group by GROUP_CONCAT函数使用

今天看到案例是说 group by 的使用看到了,感觉还是比较不错的GROUP_CONCAT,把分组之后的字段会合并在一起. insert into table_name(code,name,age) value('10001','张三丰',12); insert into table_name(code,name,age) value('10002','张无忌',12); select count(*) as counts,age,GROUP_CONCAT(code) from table_n

MySQL concat、group_concat函数使用

1.有张表,用来标记某些分子的属性信息.如下表: CREATE TABLE `t` (  `No` int(11) NOT NULL COMMENT '编号',  `Name` varchar(20) DEFAULT NULL COMMENT '名称',  `Location` varchar(20) DEFAULT NULL COMMENT '位置',  `Id` int(11) NOT NULL AUTO_INCREMENT,  PRIMARY KEY (`Id`)) ENGINE=Inno

Django的API操作mysql中常用的语句

[背景] 增/删/改/查 如何操作数据库 导入数据库的模型 In [23]: from blog.models import People [增加记录]--三种方法 方法一: 直接使用数据模对象的create函数 In [24]: People.objects.create(name='shuaige') Out[24]: <People: People object> 注意:创建成功返回对象地址 方法二: In [6]: record = People(name='choubaguai')