数据库删除重复数据

/**
 * 删除重复数据,最终保留一条在库里。
 * 处理步骤:
 *      1. 查询重复数据。
 *      2. 删除一条以上的重复数据
 */
DELETE FROM [TABLE_NAME_A] A 
       WHERE 1=1
       AND A.REPART_COLUMN IN (
           SELECT * FROM (SELECT B.REPART_COLUMN FROM [TABLE_NAME_B] B GROUP BY B.REPART_COLUMN HAVING COUNT(B.REPART_COLUMN)>1)AB
       )
       AND A.ID NOT IN (
           SELECT * FROM (SELECT MIN(C.ID) FROM [TABLE_NAME_B] C GROUP BY C.REPART_COLUMN HAVING COUNT(C.REPART_COLUMN)>1)AC
       )
       

/**
 * 数据修改
 * 1. 多列数据同时修改。
 */
UPDATE [TABLE_NAME_A] A SET (ID,CODE,NAME)= (
       SELECT B.ID,B.CODE,B.NAME FROM [TABLE_NAME_B] B WHERE A.ID=B.ID
)

/**
 * 恢复删除的表
 */
FLASHBACK TABLE ASASS TO BEFORE DROP;
原文地址:https://www.cnblogs.com/tanjiyuan/p/11820437.html