2012-09-03 2 views

Répondre

2

Ici, essayez celui-ci,

SELECT a.dept_id, 
     NewTable.NameValues 
FROM (
      SELECT DISTINCT dept_ID 
      FROM tableA 
     ) a 
     LEFT JOIN 
     (
      SELECT dept_id, 
       STUFF((
        SELECT ', ' + [Name] 
        FROM tableA 
        WHERE (dept_id = Results.dept_id) 
        FOR XML PATH('')), 1, 1, '') AS NameValues 
      FROM tableA Results 
      GROUP BY dept_id 
     ) NewTable 
     on a.dept_id = NewTable.dept_id 
GO 

SQLFiddle Demo

VOICI une autre version

SELECT a.dept_id, 
     SUBSTRING(d.nameList,1, LEN(d.nameList) - 1) ConcatenateNames 
FROM 
     (
      SELECT DISTINCT dept_id 
      FROM tableA 
     ) a 
     CROSS APPLY 
     (
      SELECT name + ', ' 
      FROM tableA AS B 
      WHERE A.dept_id = B.dept_id 
      FOR XML PATH('') 
     ) D (nameList) 
GO 

SQLFiddle Demo

+0

merci monsieur pour m'aider. –

+0

Notez que seul le choix interne est requis sur le premier exemple (c'est-à-dire la table utilisée pour la jointure gauche) – brichins

-3

Essayez ceci:

select col1 + ' ' + col2 from bla.bla.bla 
+2

Les valeurs concaténées sont dans des lignes différentes. –

Questions connexes