我有以下Oracle数据库。 Employee表使用order by子句按降序排列。表格列只是解释方案的示例。
S.no Time_to_complete Project employee_id
3 23 project3 xx
2 22 project2 xx
1 34 project1 xx
我只需要更新数据库中的最新记录,即
S.no Time_to_complete Project employee_id
3 25(updated) project3 xx
注意:此更新是函数的一部分,我只能访问employee_id
如何更新,只更新Oracle中的最新行?
update employee set time_to_complete=25 where employee_id=xx and rownum=1 order by s.no desc
返回
S.no time_to_complete Project employee_id
1 25(updated) project1 xx
答案 0 :(得分:1)
update employee e
set e.time_to_complete = 25
where e.s_no = (select max(e2.s_no) from employee e2 where e2.employee_id = xx)