代码首次迁移-SQL更新列,其中包含来自同一表中另一行的数据

代码首次迁移-SQL更新列,其中包含来自同一表中另一行的数据,sql,sql-server,entity-framework-core,sql-update,ef-code-first,Sql,Sql Server,Entity Framework Core,Sql Update,Ef Code First,情况: 下表所示为: 身份证件 价格 产品ID 有效期自 1. 1,00 1. 01-01-01 2. 1,00 1. 01-01-15 3. 1,00 1. 01-02-01 4. 1,00 2. 01-01-01 5. 1,00 2. 01-01-11 6. 1,00 2. 01-01-28 7. 1,00 2. 01-02-01 8. 1,00 2. 01-01-08 您可以使用lead()获取截止日期: select p.*, lead(validfrom) over (p

情况:

下表所示为:

身份证件 价格 产品ID 有效期自 1. 1,00 1. 01-01-01 2. 1,00 1. 01-01-15 3. 1,00 1. 01-02-01 4. 1,00 2. 01-01-01 5. 1,00 2. 01-01-11 6. 1,00 2. 01-01-28 7. 1,00 2. 01-02-01 8. 1,00 2. 01-01-08 您可以使用
lead()
获取截止日期:

select p.*,
       lead(validfrom) over (partition by productid order by validfrom) as validuntil
from prices p;
在SQL Server中,您可以将其合并到更新中:

with toupdate as (
      select p.*,
             lead(validfrom) over (partition by productid order by validfrom) as new_validuntil
      from prices p
     )
update toupdate
    set validuntil = new_validuntil
    where new_validuntil is not null;

用你正在使用的数据库标记你的问题。哦,对不起。当然,太好了!感谢您的快速响应和巨大帮助。为我工作!