2010-03-24 3 views
1

은 가정하자 나는 테이블 그 구조와 같다 (tblEmp)가 같은찾기 직원 2000

Dept  Emp 
----- ------ 
d1  e1 
d1  e2 
d1  e3 
d2  e4 
d2  e5 
d3  e6 

내가

Dept DepartmentSpecificEmployees 
------  ----------------------------  
    d1   e1,e2,e3 
    d2   e4,e5 
    d3   e6 

출력을 가지고해야하는 경우 아래의 쿼리를

으로 작성합니다.
select 
    Dept, 
    stuff((select ',' + Emp from tblEmp t2 where t1.Dept = t2.Dept for xml path(''),1,1,'')DepartmentSpecificEmployees 
from 
    tblEmp t1 
group by 
    Dept 

하지만이 방법은 SQL Se rver 2005+.

변수 선언이나 루프 또는 커서없이 SQL Server 2000에서 어떻게 동일한 결과를 얻을 수 있습니까? 내가 대안으로 COALESCE를 사용하는 경우

은, 그때

당신은 SQL Server 2000에서 스칼라 사용자를 사용하지 않고 함수를 정의 할 수

답변

2

도와주세요 목적을 물리 칠 것이다 변수를 사용할 필요가 SELECT. 이 UDF는 (당신이 언급 한 바와 같이) 지역 변수가 있고 각 그룹

select 
    Dept, dbo.MyConcatUDF (Dept) 
FROM 
    (SELECT DISTINCT Dept FROM tblEmp) t1 

을 concats 아니면이

+0

한 아주 깔끔한 클라이언트에서 할 것입니다 ... –