SQL同一ID填充在多行中,填充的列值不同--一行中需要一个ID

SQL同一ID填充在多行中,填充的列值不同--一行中需要一个ID,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一张如下的桌子: ID Col1 Col2 Col3 Col4 001 A 001 B 001 C 001 D 002 X 002 Y ID Col1 Col2 Col3 Col4 001 A

我有一张如下的桌子:

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
我希望得到如下结果:

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。
有什么想法吗?非常感谢

您可以通过聚合来实现这一点:

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
语句中添加其他子句。

您可以通过聚合执行此操作:

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
语句中添加其他子句。

谢谢!但是如果我有20个其他列,我将不得不执行Max(col1)到Max(col20)并按ID分组。谢谢Gordon,虽然它不可伸缩,但工作正常汉克斯!但是如果我有20个其他列,我将不得不执行Max(col1)到Max(col20)并按ID分组。谢谢Gordon,虽然它不可伸缩,但工作正常D