0
我有一个SQLAnywhere的表是这样的:SQL汇总最新的非空列值
id int not null,
inserted datetime not null,
modified datetime not null,
data1 varchar(20) null
data2 varchar(20) null
开发商没有把一个唯一索引上的ID,现在有一帮行与同但行之间的data1和data2的值不同,包括一些空值。我需要解决这个问题,使用最早插入时间,最新修改时间和最新(修改时间)将具有相同ID的所有行滚动到新表中的单个行中。非null data1的值和data2(除非该id的所有行都为null,在这种情况下,汇总的行值将为空)。我不能只用最后一行;我需要每个列的最新非空值。
所以三行这样的:
1, '2016-01-01', '2016-01-02', 'first', null
1, '2016-01-05', '2016-01-07', null, 'second'
1, '2016-01-10', '2016-01-12', 'third', null
...会卷起:
1, '2016-01-01', 2016-01-12', 'third', 'second'
我看不相等自联接和窗口功能,但我无法让他们为单个列汇总最新的非空值。在一个查询中有没有一种很酷的SQL方法来做到这一点,或者我是否为它编写了一个Java程序?
感谢
完美!谢谢杰里米。 – alacrity