消除所有空值并在一条记录中显示所有值

时间:2018-10-12 13:55:15

标签: sql oracle

我需要对table1进行选择,以使其看起来像table2 oracle。请帮忙。我尝试了某些情况下,并且枢轴旋转,但一次又一次失败。

表1:

Product   abc    def   ghi
1          100   0     0
1          0     10    0
1          0     0     20
2          0     0     80
2          0     60    0
2          3     0     0

表2:

product   abc    def   ghi
1         100    10    20
2         3      60    80

1 个答案:

答案 0 :(得分:0)

进行聚合:

select product, max(abc), max(def), max(ghi)
from table1 t1
group by product;

但是,您为sum()提供的示例数据提供的值也可以使用。如果table具有NULL而不是0,那么这两个功能都可以工作,但是如果table中的max()值,我更喜欢使用null