UPDATE statement in Oracle using SQL or PL/SQL to update first duplicate row ONLY(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 仅更新第一个重复行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Oracle 中的 UPDATE 语句使用 SQL 或 PL/SQL 仅更新第一个重复行
基础教程推荐
- oracle区分大小写的原因? 2021-01-01
- 什么是 orradiag_<user>文件夹? 2022-01-01
- MySQL 中的类型:BigInt(20) 与 Int(20) 2021-01-01
- 二进制文件到 SQL 数据库 Apache Camel 2021-01-01
- mysql选择动态行值作为列名,另一列作为值 2021-01-01
- 如何在 SQL 中将 Float 转换为 Varchar 2021-01-01
- 表 './mysql/proc' 被标记为崩溃,应该修复 2022-01-01
- 在多列上分布任意行 2021-01-01
- 如何根据该 XML 中的值更新 SQL 中的 XML 2021-01-01
- 在 MySQL 中:如何将表名作为存储过程和/或函数参数传递? 2021-01-01
