Custom Search

Wednesday, May 7, 2008

Useful sql to clean duplicated records

Delete duplicated data from table can be a headache. In the example below we are using the unique ROWID to distinguish the duplicated rows. (Each record in database contains a uniques system generated number)

DELETE FROM TEST1 A
WHERE ROWID >
(SELECT MIN(ROWID)
FROM TEST1 B
WHERE A.COLUMN1 = B.COLUMN1
[AND A.COLUMN2 = B.COLUMN2
AND A.COLUMNn = B.COLUMNn])


Alternatively we can use a temporary table do the trick:

CREATE TABLE TEMP_TEST2 AS
SELECT DISTINCT *
FROM TEST1
WHERE [PUT IN UR CONDITIONS];

DELETE TABLE TEST1;

INSERT INTO TEST1 SELECT * FROM TEMP_TEST2;

No comments: