2013-08-20 60 views
1

我有一個像下面的表格:SQL相同的ID - 需要一個ID一行

ID  Col1 Col2 Col3 Col4 
001  A  
001    B 
001      C  
001        D 
002    X 
002        Y 

我想要的結果如下所示:

ID Col1 Col2 Col3 Col4 
001 A  B  C  D 
002   X    Y 

挑戰是列的數量是未知的,也許它有一個Col5甚至Col10。 有什麼想法?非常感激。

回答

1

你可以用聚集做到這一點:

select id, max(col1) as col1, max(col2) as col2, max(col3) as col3, max(col4) as col4 
from t 
group by id; 

這假定有一個ID列中沒有重複。

對於其他列,您需要將其他子句添加到select語句中。

+0

謝謝!但是如果我有20個其他列,我將不得不將Max(col1)一直做到Max(col20)並按ID分組? – Kric

+1

@Kric。 。 。是。 –

+0

謝謝戈登,雖然它不可擴展,但它工作正常。 :d – Kric

相關問題