2012-10-24 106 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