ORACLE中,如何使用UPDATE修改重复列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE中,如何使用UPDATE修改重复列相关的知识,希望对你有一定的参考价值。

我通过GROUP BY 语句查到了A列中有很多重复的值,现在需要给重复的值加上数字,让它不重复,有个规则,需要第一个重复的加1,第二个重复的加2,如下面的举例,这样语句该如何写?
A 列 想要的结果
销售 销售1
销售 销售2
综合 综合1
综合 综合2
综合 综合3

参考技术A select colA,colA||to_char(rn)
from (
select colA,row_number() over (partition by colA order by colB) as rn
from table_name
) t
参考技术B 表结构至少还需要一个唯一索引列,比如 ID

update t_test t1 set t1.name=t1.name||(
select rm from (
select row_number() over(PARTITION BY name order by name ) as rm ,t.*from t_test t) t2
where t2.id=t1.id
)

效率可能比较低,数据量小的话没啥问题本回答被提问者和网友采纳

SQL Server中如何不允许列重复?

SQL Server中如何不允许列重复?

参考技术A 建立不重复字段,有两种方法:
1、允许null值,使用unique关键字,建立唯一约束;
2、不允许null值,使用primary
key关键字,建立主键约束。
参考技术B 添加主键
或者是对某个列添加一个唯一性的约束本回答被提问者采纳
参考技术C 你说的是列数据吧?是行数,你在设计表的时候设它为主键或加上约束 参考技术D 选择unique

以上是关于ORACLE中,如何使用UPDATE修改重复列的主要内容,如果未能解决你的问题,请参考以下文章

oracle update如何更新多行数据

oracle数据库如何用update批量更新某列数据中的字段

oracle数据库如何用update批量更新某列数据中的字段

如何解决Oracle“不能创建唯一索引,发现重复记录”问题

oracle update触发器如何获取被修改的字段

oracle中update后如何自动commit