Sql 如何填充空值,如up结果

Sql 如何填充空值,如up结果,sql,sql-server,Sql,Sql Server,例如,我有一个如下表: Plan Name 211 - SELET HIAG TEST1 NULL TEST2 NULL TEST3 NULL TEST4 NULL TEST5 213 - SOUND III TEST6 NULL TEST7 NULL TEST8 NULL TEST9 211 - BUBBLE TEST10 NULL TEST11 NULL TEST12 NULL TEST13 NULL TES

例如,我有一个如下表:

Plan    Name
211 - SELET HIAG    TEST1
NULL    TEST2
NULL    TEST3
NULL    TEST4
NULL    TEST5
213 - SOUND III TEST6
NULL    TEST7
NULL    TEST8
NULL    TEST9
211 - BUBBLE    TEST10
NULL    TEST11
NULL    TEST12
NULL    TEST13
NULL    TEST14
但应该是这样的:

Plan    Name
211 - SELET HIAG    TEST1
211 - SELET HIAG    TEST2
211 - SELET HIAG    TEST3
211 - SELET HIAG    TEST4
211 - SELET HIAG    TEST5
213 - SOUND III TEST6
213 - SOUND III TEST7
213 - SOUND III TEST8
213 - SOUND III TEST9
211 - BUBBLE    TEST10
211 - BUBBLE    TEST11
211 - BUBBLE    TEST12
211 - BUBBLE    TEST13
211 - BUBBLE    TEST14
Ps:我没有一个标识列

如果您有一个列指定顺序,您可以使用apply执行此操作:

select tprev.plan, t.name
from t outer apply
     (select top 1 tprev.*
      from t tprev
      where tprev.plan is not null and tprev.?? <= t.??
      order by tprev.?? desc
     ) tprev;
这个??用于指定排序的列。

SQL表表示无序集。您需要一个列来指定顺序。