我有下表,想要转换成如下所示的表格。只要列'name'中缺少值,就会从相邻的顶行填充该值。我通过创建自我联接来解决我的目的。但在某些情况下,连续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
答案 0 :(得分: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;