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
有什么想法吗?