SELECT ID = tmp.ID ,Value = t3.[Value]FROM (SELECT t1.[ID] ,MaxID = MAX(t2.ID) FROM [dbo].[Test] t1 INNER JOIN [dbo].[Test] t2 ON [t1].[ID] >= [t2].[ID] AND t2.[Value] IS NOT NULL GROUP BY t1.[ID]) tmpINNER JOIN [dbo].[Test] t3 ON tmp.[MaxID] = t3.[ID]