SQl 分组后按照某一列拼接字符串

/*
分组之后拼接字符串
*/
;with t  as(
SELECT WorkflowId,Remark
 FROM dbo.OperatorAutomationProcess GROUP BY WorkflowId,Remark
)
,
H AS(
SELECT WorkflowId,  -- 分组的主键
STUFF(
     (
      SELECT ‘_‘+ Remark -- 要拼接的列
	  FROM t a WHERE b.WorkflowId = a.WorkflowId FOR XML PATH(‘‘)
     ),1 ,1, ‘‘) Remark
FROM t b
GROUP BY WorkflowId
)
SELECT * FROM H

  要分组的数据:

按照分组 拼接后的数据:

原文地址:https://www.cnblogs.com/hnzheng/p/9151877.html

时间: 2024-10-01 04:48:53

SQl 分组后按照某一列拼接字符串的相关文章

MySQL 对分组后的同类数据进行拼接字符串

MySQL 对分组后的同类数据进行拼接字符串 写后台方法时遇到个问题,需要将表内同一订单号的操作记录流水进行简单拼接输出,不想取出来再操作,找了个mysql的方法直接操作 group_concat对组内的每一行数据拼接,内部可以排序.使用separator 进行分割 concat_ws对一行内的各个字段进行拼接,第一项指定分隔符,后续的有null会忽略 select oid, group_concat(concat_ws('|',atime,(select `level` from prizes

sql 分组后查询最大所有列信息

CREATE TABLE students (course varchar(10), stu_name varchar(10), city varchar(10), score int ) insert into students values('数学','Jack','Tianjin',80); insert into students values('数学','Jordan','Tianjin',80); insert into students values('数学','James','B

SQL 分组后拼接字符串

with t as( select 'Charles' parent, 'William' child union select 'Charles', 'Harry' union select 'Anne', 'Peter' union select 'Anne', 'Zara' union select 'Andrew', 'Beatrice' union select 'Andrew', 'Eugenie' ) SELECT parent, STUFF( ( SELECT ','+ chil

sql 分组后 组内排名

语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号. 示例: xlh           row_num 1700              1 1500              2 1085             

SQL 分组后获取其中一个字段最大值的整条记录

--有id,name,createDate的一张表testTable--根据name分组,获取每组中createDate最大的那条记录(整条)查询出来---------------------------------------------- 创建一张表,语句如下: [sql] view plaincopyprint? CREATE TABLE [dbo].[testTable] ( [id] [int] NOT NULL IDENTITY(1, 1), [name] [nchar] (10) 

行变列 拼接字符串 MSSQL 一个超级搞的问题

由数据 ThreeLevelSortID KeyWordID KeyWordName 2 142 key1 2 142 key2 3 143 key3 3 144 key4 得到数据大 ThreeLevelSortID KeyWordName 2 key1,key2 3 key3,key4 declare @tblTmp table (id int,ThreeLevelSortID int,KeyWordName nvarchar(max)) declare @tblTmpCount int i

SQL数据分组后取最大值或者取前几个值(按照某一列排序)

今日做项目的时候,项目中遇到需要将数据分组后,分组中的最大值,想了想,不知道怎么做,于是网上查了查,终于找到了思路,经过比较这个查询时目前用时最快的,其实还有别的方法,但是我觉得我们只掌握最快的方法就行 ,好了,不说废话了! 直接上内容吧:以下数据是通过 SELECT [CustomerCaseNo],[PaymentsTime] FROM [BOMSDatabase].[dbo].[BAL_paymentsSwiftInfo] where StoresNo='zq00000034' group

SQL数据分组后取最大值或者取前几个值(依照某一列排序)

今日做项目的时候,项目中遇到须要将数据分组后,分组中的最大值,想了想,不知道怎么做.于是网上查了查,最终找到了思路,经过比較这个查询时眼下用时最快的,事实上还有别的方法,可是我认为我们仅仅掌握最快的方法即可 .好了,不说废话了! 直接上内容吧:下面数据是通过 SELECT [CustomerCaseNo],[PaymentsTime] FROM [BOMSDatabase].[dbo].[BAL_paymentsSwiftInfo] where StoresNo='zq00000034' gro

MSSQL—按照某一列分组后取前N条记录

以前在开发的时候遇到过一个需求,就是要按照某一列进行分组后取前几条数据,今天又有同事碰到了,帮解决了之后顺便写一篇博客记录一下. 首先先建一个基础数据表,代码如下: IF OBJECT_ID(N'Test') IS NOT NULL    BEGIN        DROP TABLE Test    END CREATE TABLE Test(ID bigint IDENTITY(1,1),Name nvarchar(50),Department nvarchar(50)) INSERT IN