Oracle:如何仅更新oracle数据库中的最新行

时间:2015-09-04 12:53:59

标签: oracle

我有以下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

1 个答案:

答案 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)