Saturday 28 April 2012

Delete duplicate values from a table


DELETE FROM my_table 
 WHERE ROWID NOT IN (SELECT MIN(ROWID) 
                       FROM my_table 
                      GROUP BY delete_col_name);
 
-- Example :
--
-- Given a table called emp with the following columns:
--   id   number
--   name varchar2(20)
--   sal  number
--
-- To delete the duplicate values:
-- 
-- DELETE FROM emp 
--  WHERE ROWID NOT IN (SELECT MIN(ROWID) FROM emp GROUP BY id); 
-- 
-- COMMIT;

No comments:

Post a Comment