问题描述
我正在寻找一个 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 仅更新第一个重复行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!