SQL查询返回结果并需要以逗号分隔显示

时间:2017-04-01 17:11:45

标签: sql sql-server sql-server-2008

我有以下查询,效果很好。

select     distinct d_invoice.*,
           center.centerid 
from       d_invoice
inner join center 
on         center.centerid = d_invoice._center 

现在上面的查询为我提供了dr_id这是表d_invoice的PK

使用来自其他表的以下查询,它会为item_id提供{1}},因为一个dr_id可以有多个项目:

select item_id 
from   d_invoice_items 
where  dr_id = 10 

我想加入两个查询,因此我可以创建一个名为items的新列,它会在逗号分隔中列出所有item_id

1 个答案:

答案 0 :(得分:0)

您可以使用STUFFFOR XML PATH之类的内容:

select distinct d.*,
    c.centerid,
    stuff((
            select ',' + item_id
            from d_invoice_items i
            where i.dr_id = d.dr_id
            for xml path('')
            ), 1, 1, '') as items
from d_invoice d
inner join center c on c.centerid = d._center;