将多行组合在一起

Enc*_*tor 2 sql sql-server

我有一个包含以下内容的表,我希望将它们分组以获得以下输出.可能吗?

输入

ID    Value1    Value2    Value3
5     Y         NULL      NULL
5     NULL      1         NULL
5     NULL      NULL      USA
5     NULL      NULL      NULL
6     N         NULL      NULL
6     NULL      2         NULL
6     NULL     NULL       GBP
6     NULL     NULL       NULL
Run Code Online (Sandbox Code Playgroud)

产量

ID     Value1     Value2     Value3
5      Y          1          USA
6      N          2          GBP
Run Code Online (Sandbox Code Playgroud)

jue*_*n d 6

group by id和用于max()获取每个组的非null值

select id, 
       max(value1) as value1, 
       max(value2) as value2, 
       max(value3) as value3
from your_table
group by id
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你应该考虑改变你的桌面设计.它没有正常化.