我有2栏
date number
---- ------
1 3
2 NULL
3 5
4 NULL
5 NULL
6 2
.......
我需要用新值替换NULL值,以采用日期列中前一个日期的最后一个已知值中的值
例如:date = 2数字= 3,日期4和5数字= 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, NULL
INSERT INTO @Table (ID,Val) SELECT 5, NULL
INSERT INTO @Table (ID,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
关于sql - SQL QUERY用先前已知值中的值替换行中的NULL值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1345065/