2009-06-18 5 views
3

아래 쿼리에서 데이터 출력을 가져 와서 모든 전자 메일 주소를 직원 이름별로 그룹화 된 세미콜론으로 구분하여 함께 보내고 싶습니다.SQL - 단일 열로 여러 행

SELECT 
    DISTINCT 
    p.email 
    , e.name 
FROM 
    PERSON p 
INNER JOIN 
    EMPLOYEE e 
ON 
    p.agentofrecord_id = e.employee_id 
WHERE 
    dbo.GetPersonMember(p.person_id) = 1 
    AND (p.isactive = 1) 
    AND p.email <> '' 
ORDER BY name 
+0

1NF를 위반하는 방법을 묻습니다. SQL은 실제로 그렇게 설계되지 않았습니다. SQL 표준에는 '연결'설정 기능이 없습니다. http://en.wikipedia.org/wiki/First_normal_form#Domains_and_values. – onedaywhen

+0

@onedaywhen - 이것은 직원이 그룹화 한 사용 가능한 형식으로 전자 메일 주소를 얻는 것입니다 ... 다른 것은 없습니다 ... 여기에서하지 않으면 코드 또는 Excel ... 쉬운 것을 찾고 있습니다. 나중에 시간을 절약하십시오. – RSolberg

+0

[http://stackoverflow.com/questions/905818/tsql-comma-separation/913023#913023](http://stackoverflow.com/questions/905818/tsql-comma-separation/913023#913023) 참조 – van

답변

5

기본적으로 MySQL의 GROUP_CONCAT 집계 함수가 TSQL에 필요합니다. 그렇다면 this article이 도움이 될 수 있습니다 - 확인해보십시오!