代码首次迁移-SQL更新列,其中包含来自同一表中另一行的数据
情况: 下表所示为: 身份证件 价格 产品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 您可以使用代码首次迁移-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
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;
用你正在使用的数据库标记你的问题。哦,对不起。当然,太好了!感谢您的快速响应和巨大帮助。为我工作!