2012-09-03 5 views

답변

2

가이 일을하려고 여기

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

다른 버전

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

나를 도와 주신 고마워요. –

+0

첫 번째 예제 (즉, 왼쪽 조인에 사용 된 테이블)에는 내부 선택 만 필요합니다. – brichins

-3

이 시도 :

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

연결되는 값은 다른 행에 있습니다. –

관련 문제