Заполнение нулей выражением
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
Есть идеи?