Обновить значение с другим из предыдущей ячейки sql - PullRequest
0 голосов
/ 22 мая 2019

У меня есть ситуация, когда мне нужно 1. посмотрите и найдите любую дату, равную 1900-01-01 2. Замените его значением из предыдущей ячейки

enter image description here

1 Ответ

1 голос
/ 22 мая 2019

Вы можете использовать lag():

select t.id,
       coalesce(nullif(date, '01-01-1900'),
                lag(date) over (order by id)
               ) as date
from t;

РЕДАКТИРОВАТЬ:

Если вы хотите обновить значение, используйте обновляемый CTE:

with toupdate as (
      select t.*, lag(date) over (order by id) as prev_date
      from t
     )
update toupdate
    set date = prev_date
    where date = '1900-01-01';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...