Oracle 中的 UPDATE 语句使用 SQL 或 PL/SQL 仅更新第一个重复行

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

问题描述

我正在寻找一个 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) intact as 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');

    run four (4) times 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 中的 UPDATE 语句使用 SQL 或 PL/SQL 仅更新第一个重复行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)