1

我有下表,想转换成如下所示的表格。每当“名称”列中缺少值时,就会从相邻的顶行填充该值。我通过创建自联接解决了我的目的。但在某些情况下,连续 2 或 3 行是空白的,我不得不多次运行我的自我加入。此外,我不确定数据中有多少连续的空白,我不得不一次又一次地运行自我连接,直到它停止更新任何记录

我正在使用 SQL Server 管理工作室...

id  name
1   nj
2   ab
3   
4   
5   cd
6   
7   ef
8   
9   
10  gh
11  ij
12  jk

我想要的输出:

id  name
1   nj
2   ab
3   ab
4   ab
5   cd
6   cd
7   ef
8   ef
9   ef
10  gh
11  ij
12  jk
4

1 回答 1

2

作为选择查询,您可以为此使用相关子查询:

select id,
       (select top 1 name
        from yourtable t2
        where t2.id <= t.id and
              t2.name is not null
        order by t2.id desc
       ) as name
from yourtable t;
于 2013-09-19T21:53:17.123 回答