2009-06-18 72 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 2009-06-18 07:24:49

回答

5

基本上,它看起来像你想在TSQL MySQL的GROUP_CONCAT聚合函数。如果是这种情况,this article可能会有所帮助 - 请查看!