使用先前单元格sql中的另一个更新值

时间:2019-05-22 12:50:56

标签: sql sql-server

我有一种情况需要 1.查找并查找等于1900-01-01的任何日期 2.将其替换为上一个单元格中的值

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用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';