sql - SQL QUERY用先前已知值中的值替换行中的NULL值

标签 sql null

我有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/

相关文章:

sql - 链接服务器(从postgresql中读取数据并插入到SQL Server中)

c# - MySqlDataReader 在大约 4 分钟后停止读取并返回

mysql - 在文本字段中选择日期范围

json - 在为我的 UITextField 展开可选值时意外发现 nil

c# - Linq2SQL : Always get . Sum() 返回 0 而不是 null

ios - Swift Admob 插页式错误

mysql - 创建 MySQL 触发器获取 #1064 - 您的 SQL 语法有错误

Mysql 使用 id 和 last_name 查询产生 0 个结果

python - Python中解析Json空数据

java - PSQL异常 : ERROR: null value in column violates not-null constraint