SQL的UPDATE语句仅更新第一个重复行

SQL的UPDATE语句仅更新第一个重复行

本文介绍了Oracle中使用SQL或PL/SQL的UPDATE语句仅更新第一个重复行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一条UPDATE语句,它将仅更新单个重复的行,而其余的(重复的行)保持不变是使用ROWID或其他工具或其他元素在Oracle SQL或PL/SQL中使用?

I'm looking for an UPDATE statement where it will update a single duplicate row only and remain the rest (duplicate rows) intactas is, using ROWID or something else or other elements to utilize in Oracle SQL or PL/SQL?

以下是可与之一起使用的示例duptest表:

Here is an example duptest table to work with:

CREATE TABLE duptest (ID VARCHAR2(5), NONID VARCHAR2(5));

  • 运行一个INSERT INTO duptest VALUES('1','a');

    运行四(4)次INSERT INTO duptest VALUES('2','b');

    此外,第一行重复行必须始终进行更新(而不是删除),而其他三行(3)必须保持原样!

    Also, the first duplicate row has to be updated (not deleted), always, whereas the other three (3) have to be remained as is!

    非常感谢,值

    推荐答案

    此功能对您有用吗?

    update duptest
    set nonid = 'c'
    WHERE ROWID IN (SELECT   MIN (ROWID)
                                  FROM duptest
                              GROUP BY id, nonid)
    

    这篇关于Oracle中使用SQL或PL/SQL的UPDATE语句仅更新第一个重复行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 00:58