SqlServer  对分组的内容进行拼接:

方案1:xml 子集,性能较差

方案2:借助 sqlCLR 接入。实现group_concat。性能完美,但是 阿里云的不支持!!!!

CREATE TABLE [dbo].[a_data_test](
[empid] [INT] NULL,
[workdate] [DATETIME] NULL
) ON [PRIMARY]

INSERT INTO [a_data_test] ([empid], [workdate]) VALUES (1, '2018-8-17 10:20:43.33310:');
GO
INSERT INTO [a_data_test] ([empid], [workdate]) VALUES (1, '2018-8-17 10:20:43.333');
GO
INSERT INTO [a_data_test] ([empid], [workdate]) VALUES (2, '2018-8-17 10:21:09.29310:');
GO
INSERT INTO [a_data_test] ([empid], [workdate]) VALUES (2, '2018-8-17 10:21:09.293');
GO
INSERT INTO [a_data_test] ([empid], [workdate]) VALUES (3, '2018-8-17 10:21:37.87710:');
GO
INSERT INTO [a_data_test] ([empid], [workdate]) VALUES (3, '2018-8-17 10:21:37.880');
GO
INSERT INTO [a_data_test] ([empid], [workdate]) VALUES (3, '2018-8-17 10:21:37.88010:');
GO

1:

SELECT
ta.empid,
STUFF((SELECT ',' +CONVERT(varchar(100), b.workdate, 25)
FROM a_data_test b
WHERE ta.empid=b.empid
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
FROM
(
SELECT
a.empid
FROM
dbo.a_data_test a
GROUP BY a.empid
) ta
--LEFT JOIN dbo.a_data_test b ON b.empid = ta.empid

  

2:

 https://archive.codeplex.com/?p=groupconcat
https://github.com/orlando-colamatteo/ms-sql-server-group-concat-sqlclr/tree/master/GroupConcat 
https://www.codeproject.com/Articles/691102/String-Aggregation-in-the-World-of-SQL-Server
https://www.anexinet.com/blog/group_concat-functionality-for-sql-server/
 

SqlServer 对分组的内容进行拼接-group_concat的更多相关文章

  1. MySQL 分组并多行拼接 group_concat 用法

    数据源 user name     age 小红 18 小明 18 小芳 19 ------------------------------------------------------------ ...

  2. mysql GROUP_CONCAT 可以将分组的字段进行拼接处理.

    GROUP_CONCAT 可以将分组的字段进行拼接处理. SELECT g.id, g.merchant_id, g. NAME, g.introduction, g.cover_pic, g.pla ...

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

    SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起. 后在网上查找,找到了可以实现此功能的方法,特此记录下. SELECT a, stuff((SELECT ...

  4. view视图--display中echo出ob_get_contents的缓冲内容--(实现,拼接好文件--导入文件)

    view.php01默认设置有3个公共的属性,其他属性.后面实例化的时候.通过传递参数.foreach遍历,不断的增加属性02view对象的实例化.位置在-->控制器父类的构造方法中视图的目录名 ...

  5. python:print输出内容大拼接,重新认识 + 和 ,

    加号 + 和 逗号, 都可以用来拼接print的输出内容,但是两者也是有区别的. 加号拼接: print ('zwf'+'wk') 1 1 结果: zwfwk 1 1 逗号拼接: print ('zw ...

  6. 第一个go的web程序;调用七牛云存储的音频api问题解决;条件搜寻文件中的内容,字符串拼接+在上一行

    package main import ( "html/template" "io" "io/ioutil" "log" ...

  7. SQLServer中通过脚本内容查找存储过程

    select o.name,m.definition from sys.objects o left outer join sys.sql_modules m on o.object_id = m.o ...

  8. servlet 将输入内容通过拼接页面的方式显示出来

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  9. sqlserver 树形结构表查询 获取拼接结果

    树形表结构如下 IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Test]') AND ty ...

随机推荐

  1. C/S权限系统得到拼音和五笔的自定义函数(二)

    得到五笔: CREATE FUNCTION [dbo].[fun_getWB](@Str VARCHAR(2000)) RETURNS VARCHAR(2000) AS BEGIN DECLARE @ ...

  2. 【Java】 剑指offer(23) 链表中环的入口结点

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 一个链表中包含环,如何找出环的入口结点?例如,在图3.8的链表中, ...

  3. 【Java】 剑指offer(58-1) 翻转单词顺序

      本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变 ...

  4. PHP函数之array_chunk

    有时候需要对数组进行按分页处理,之前的做法是计算出数组大小,按分页计算出偏移量,再从起始偏移量处开始遍历页大小个数据.现在不用这么麻烦了,原来PHP函数里有个现成的函数array_chunk可以配合我 ...

  5. 无状态shiro认证组件(禁用默认session)

    准备内容 简单的shiro无状态认证 无状态认证拦截器 import com.hjzgg.stateless.shiroSimpleWeb.Constants; import com.hjzgg.st ...

  6. Linux文本处理三剑客之grep

    简介 grep命令,用于在一个文本文件中或者从STDIN中,根据用户给出的模式(pattern)过滤出所需要的信息. grep以及三剑客中的另外两个工具sed和awk都是基于行处理的,它们会一行行读入 ...

  7. Windows环境下 PHP调用R脚本

    写在前面的: 由于是windows平台实现的,只要保证脚本命令能在cmd控制台运行,则可以在php中利用system()实现. 注意事项: (1).保证system的路径中无汉字和空格 !!  (亲身 ...

  8. Flask使用SQLAlchemy两种方式

    一.SQLAlchemy和Alembic 主要使用原生的SQLAlchemy进行数据库操作和使用Alemic进行数据库版本控制 I 创建数据库主要有三个步骤 创建表的父类/数据库连接/Session ...

  9. 在Windows下食用Linux工作环境(WSL+cmder)

    在Windows下食用Linux工作环境(WSL+cmder) 为什么要这么瞎搞呢?因为最近换了个硬盘,搞了个双系统,然后习惯性地按下 Ctrl+Alt+T 发现什么都没有召唤出来,然后忽然想起换了系 ...

  10. node+koa2 向页面传值方式

    1. router.post('/form',async(ctx,next)=>{ const form = ctx.request.body; console.log('用户名:'+form. ...