将多行连接为单行,并在SQL SERVER中计算并列的行数

问题描述 投票:0回答:1

我在表A中有列是

enter image description here

而且我想要这样的输出

enter image description here

这里,我想将多行连接成单行,也要计算连接的行数。。

感谢

sql sql-server sql-server-2014
1个回答
1
投票

使用stuff()

select id,  stuff(( select concat( ',', name) from tablename b where a.id= b.id
for xml path('')),1,1, ''),count(*) as cnt
    from tablename a
    group by id

0
投票
CREATE TABLE #Temp
(ID INT,NAME VARCHAR(50))


INSERT INTO #Temp(ID, [NAME])VALUES(1,'ABC')
INSERT INTO #Temp(ID, [NAME])VALUES(1,'EFG')
INSERT INTO #Temp(ID, [NAME])VALUES(2,'HIJ')
INSERT INTO #Temp(ID, [NAME])VALUES(2,'JKL')
INSERT INTO #Temp(ID, [NAME])VALUES(3,'MNO')

首先创建一个表。...

SELECT STUFF(
(
SELECT ',' + s.NAME
FROM #Temp s
WHERE s.ID = t.ID
FOR XML PATH('')),1,1,'') AS NAME,t.ID,COUNT(t.ID) AS COUNT

FROM #Temp AS t
GROUP BY ID

USE Stuff()

© www.soinside.com 2019 - 2024. All rights reserved.