add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
WITH your_table(ID,IDTAB2,DESC1,DESC2,MEX,CODE)
AS
(
SELECT 1,2,'aa','bb',4,'CS' UNION ALL
SELECT 1,2,'aa','bb',4,'NN' UNION ALL
SELECT 2,1,'ab','cc',2,'AF' UNION ALL
SELECT 2,2,'bb','bc',2,'DC' UNION ALL
SELECT 2,2,'bb','bc',2,'KK' UNION ALL
SELECT 2,2,'bb','bc',2,'JD'
)

SELECT DISTINCT A.ID,A.IDTAB2,A.DESC1,A.DESC2,A.MEX,
SUBSTRING(
(
SELECT ' '+ B.CODE AS [text()]
FROM your_table B
WHERE B.ID = A.ID
AND B.IDTAB2 = A.IDTAB2
AND B.DESC1 = A.DESC1
AND B.DESC2 = A.DESC2
AND B.MEX = A.MEX
ORDER BY B.ID,B.IDTAB2,B.DESC1,B.DESC2,B.MEX
FOR XML PATH ('')
), 2, 1000) [C_Name]
FROM your_table A

ID IDTAB2 DESC1 DESC2 MEX C_Name
1 2 aa bb 4 CS NN
2 1 ab cc 2 AF
2 2 bb bc 2 DC KK JD