2012-10-24 102 views

回答

9

在SQL Server,你可以使用FOR XML PATH

select distinct a, 
    stuff(
    (
    select ','+ cast(b as varchar(10)) 
    from table1 t2 
    where t1.a = t2.a for XML path('') 
),1,1,'') ListOfB 
from table1 t1 

SQL Fiddle with Demo

+0

增添几分复杂的,如果有什么t1和t2都需要有显著WHERE子句?我尝试了两个条款中的相同条款,但是我想知道是否有更好的方法。也许别人使用临时表?基本上表1是巨大的,我只需要大约0.01%回来。所以我不喜欢在巨大的桌子上进行子查询的想法。我想我会使用一个临时表来过滤到本质上是Table1的日期,所以我几乎可以使用Answer中的查询。 – beauk

+0

@AncientAnt你需要至少在外部使用'where',你必须测试你是否需要它在内部查询 – Taryn