将多行组合在一起

时间:2017-01-09 10:21:18

标签: 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

输出

ID     Value1     Value2     Value3
5      Y          1          USA
6      N          2          GBP

1 个答案:

答案 0 :(得分:6)

id分组并使用max()获取每个组的非空值

select id, 
       max(value1) as value1, 
       max(value2) as value2, 
       max(value3) as value3
from your_table
group by id
你应该考虑改变你的桌面设计。它没有正常化。