SQL如何使用同一个表中的数据更新列

时间:2017-07-03 19:30:22

标签: sql sql-server

ID START_DATE     ADD_DAYS    NEW_DATE    
------------------------------------------
1  02/02/2017     5     
2  06/24/2017     3      
3  07/14/2017     9      
4  05/19/2017     12    

我有下表,我想进入并使用从表本身读取的数据更新NEW_DATE列。我正在努力理解正确的MS SQL来实现这一目标。有帮助吗?

2 个答案:

答案 0 :(得分:3)

UPDATE MYTABLE SET NEW_DATE = DATEADD(day, ADD_DAYS, START_DATE)

如果您需要使用条件更新行,您可以执行以下操作:

UPDATE MYTABLE SET NEW_DATE = DATEADD(day, ADD_DAYS, START_DATE)
WHERE ID < 10

答案 1 :(得分:0)

如果您可以控制架构,则可能需要将此NEW_DATE列添加为计算列。

ALTER TABLE table_name ADD NEW_DATE as DATEADD(DAY,ADD_DAYS,START_DATE)

这样您就不需要更新任何内容,并且会自动重新计算对add_days或start_date的任何更改