Заполнение нулей выражением

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 ответов

Другие вопросы по тегам