用表达式填充空值

时间:2017-08-03 12:16:59

标签: sql null ifnull

ID | Seq | Status |
------+-------+-----+
 1 |  1  |   OK   |
 1 |  2  |  Fail  |
 1 |  3  |  NULL  |
 1 |  4  |  NULL  |

我有上面的数据,我正在使用。我希望状态栏中没有空值。相反,如果序列中的某个地方出现故障,状态应该一直都是失败的,如下所示:

ID | Seq | Status |
------+-------+-----+
 1 |  1  |   OK   |
 1 |  2  |  Fail  |
 1 |  3  |  Fail  |
 1 |  4  |  Fail  |

我开始做一个简单的延迟,但是在这个过程的早期失败时这不起作用。序列中的后续步骤仍为NULL。

SELECT ID 
,Seq
,CASE 
    WHEN STATUS IS NULL
    THEN LAG(STATUS, 1, 0) OVER (PARTITION BY ID ORDER BY ID)
    ELSE STATUS
END AS STATUS
FROM table

有什么想法吗?

0 个答案:

没有答案