答案 0 :(得分:2)
实现这一目标的一种方法是使用子查询:
SELECT t1.Nr, Name = (SELECT TOP 1 Name
FROM #temp t2
WHERE Name IS NOT NULL
AND t1.Nr >= t2.Nr
ORDER BY Nr DESC)
FROM #temp t1
ORDER BY Nr;
的 LiveDemo
强>
或CROSS APPLY
:
SELECT t1.Nr, sub.Name
FROM #temp t1
CROSS APPLY (SELECT TOP 1 Name
FROM #temp t2
WHERE Name IS NOT NULL
AND t1.Nr >= t2.Nr
ORDER BY Nr DESC) AS sub
ORDER BY Nr;
的 LiveDemo2
强>
答案 1 :(得分:1)
普遍的共识似乎是,这不是数据库要做或应该做的事情(如果可以避免的话)。 See here。
话虽这么说,this SO question似乎试图做与你相同的事情并且有一些有效的解决方案。