使用高于行值的值自动填充字段

Auto fill field with value from above row value

我想用上面的值自动填充空值。

查询

SELECT 
      Nr,
      [Name]
FROM #TEMP

Table:

我希望我的输出看起来像这样:

谢谢。

普遍的共识似乎是,这不是数据库打算做的事情,也不应该做(如果可以避免的话)。 See here

话虽这么说,this SO question 似乎正在尝试做与您相同的事情,并且有一些有效的解决方案。

实现这一目标的一种方法是使用子查询:

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