SQL QUERY将一行中的NULL值替换为先前已知值的值

我有2列
date   number       
----   ------
1      3           
2      NULL        
3      5           
4      NULL        
5      NULL        
6      2          
.......

我需要用新值替换NULL值,取值为date列中前一个日期中最后一个已知值的值
例如:date = 2 number = 3,date 4和5 number = 5和5. NULL值随机出现.

解决方法

如果您正在使用sql Server,这应该是正常的
DECLARE @Table TABLE(
        ID INT,Val INT
)

INSERT INTO @Table (ID,Val) SELECT 1,3
INSERT INTO @Table (ID,Val) SELECT 2,NULL
INSERT INTO @Table (ID,Val) SELECT 3,5
INSERT INTO @Table (ID,Val) SELECT 4,Val) SELECT 5,Val) SELECT 6,2


SELECT  *,ISNULL(Val,(SELECT TOP 1 Val FROM @Table WHERE ID < t.ID AND Val IS NOT NULL ORDER BY ID DESC))
FROM    @Table t

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...