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