我有这个employee
表,其中包含一些重复值。我想用新地址更改emp_address
。
但我希望它只更新一行。
emp_id | emp_name | emp_address | emp_dept
-------+----------+-------------+-----------
101 | Rick | Delhi | D001
101 | Rick | Delhi | D001
123 | Maggie | Agra | D890
166 | Glenn | Chennai | D900
166 | Glenn | Chennai | D900
答案 0 :(得分:0)
快速解决方法是在更新查询中使用LIMIT 1
。
编辑:或在Oracle中使用ROWNUM <= 1
答案 1 :(得分:0)
在Oracle中,您可以更新如下:
update table
set emp_address = (Select emp_address
from emp a
where a.rowid in (select max(rowid)
from emp_address b
where a.emp_id = b.emp_id
group by emp_id,emp_name) )
where emp_id =101;