我对sql有点新意,无法得到这个。 如何在一列接收到数据并且与某个值匹配时更新列的日期,那么日期应该在列中自动更新
这是我的表格如何
Id level level_4_Updated level_5_updated level_6_updated
1....4.............Null........................Null.......................Null
2....5.............Null........................Null.......................Null
3....6.............Null........................Null.......................Null
4....5.............Null........................Null.......................Null
5....4.............Null........................Null.......................Null
如果actual_level为4,那么日期应该在level_4_updated中更新,如果level为5,那么当级别获取数据时,日期应该在level_5_updated中自动更新。并且每行的更新应该是独立的。如果我们更新任何行,它不应该影响其他行。我可以通过使用触发器获得此查询。
提前谢谢
答案 0 :(得分:1)
这是你在找什么?
update t
set level_4_Updated = (case when level = 4 then now() else level_4_Updated end),
level_5_Updated = (case when level = 5 then now() else level_5_Updated end),
level_6_Updated = (case when level = 6 then now() else level_6_Updated end)
where id = @id;
答案 1 :(得分:0)
首先,我认为英语不是你的第一语言!
当您说“日期”时,我认为您的意思是数据或数据输入。
所以你要做的是将数据条目应用到名为“updated-level_i”的列中,其中名为“level”的列保存值i。
您只需编写一个stored procedure来遍历表中的每一行数据,在“level”列中获取数据条目,根据此值分配适当的更新列,然后执行更新这一栏。