id Name
1 A
2 C
2 D
1 B
T-sql
id Name
1 A,B
2 C,D
答案 0 :(得分:0)
使用此
;
WITH SampleData
AS ( SELECT *
FROM ( VALUES ( 1, 'A'), ( 2, 'C'), ( 2, 'D'), ( 1, 'B'),
( 1, 'C' ) ) T ( id, name )
)
SELECT DISTINCT
B.Id ,
SUBSTRING(( SELECT ',' + Name
FROM SampleData AS A
WHERE A.Id = B.ID
FOR
XML PATH('')
), 2, 1000) AS NAME
FROM SampleData AS B
输出结果
答案 1 :(得分:0)
这是另一种选择:
SELECT test.id, test.Name+','+ Table1_1.Name AS Name
FROM (SELECT MIN(Name) AS Name, id
FROM Table1
GROUP BY id) AS test RIGHT OUTER JOIN
Table1 AS Table1_1 ON test.id = Table1_1.id
where test.Name <>Table1_1.Name