如何使我的SQL Server表折叠在唯一的ID上以制成宽格式?

时间:2019-03-12 15:52:51

标签: sql-server tsql

我有一个已创建的SQL Server表,但我想折叠使其宽而不是高(我不知道这是否是正确的术语)。

基本上,我想通过记录某些ID的来源来显示数据库中ID的来源。我将它们全部结合在一起,最终导致ID重复很多。

这就是我目前所拥有的。具有ID的数据集,以及来自哪个表的数据集,在该列中以1或0表示。所以看起来有点像这样。

ID    Table1        Table2       Table3   Table4  Table5
--------------------------------------------------------
1       1              0           0        0       0
1       0              1           0        0       0
1       0              0           1        0       0 
1       0              0           0        0       1
2       1              0           0        0       0
2       0              1           0        0       0
2       0              0           0        1       0

我想要一个折叠ID并执行类似操作的表。

ID    Table1    Table2      Table3    Table4       Table5
--------------------------------------------------------
1      1          1          1          0            1
2      1          1          0          1            0

1 个答案:

答案 0 :(得分:2)

您可以使用max()

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