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 |