【问题标题】:How to update a column with duplicate values in SQL如何在 SQL 中更新具有重复值的列
【发布时间】:2016-09-09 14:32:21
【问题描述】:

我有这个带有一些重复值的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

【问题讨论】:

标签: sql oracle sql-update


【解决方案1】:

快速解决方法是在更新查询中使用LIMIT 1

编辑:或在 Oracle 中使用 ROWNUM <= 1

【讨论】:

  • 问题被标记为oracle
  • 谢谢,我错过了。
【解决方案2】:

在 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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 2023-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多