1. Select ra các dòng bị trùng (duplicate primary key values)
SELECT col1, col2, count(*)
FROM t1
GROUP BY col1, col2
HAVING count(*) > 1
2. Đổ vào 1 bảng tạm holdkey
SELECT col1, col2, col3=count(*)
INTO holdkey
FROM t1
GROUP BY col1, col2
HAVING count(*) > 1
3. Giữ lại 1 giá trị của các dòng bị trùng, bằng SELECT DISTINCT và đổ vào table holddups.
SELECT DISTINCT t1.*
INTO holddups
FROM t1, holdkey
WHERE t1.col1 = holdkey.col1
AND t1.col2 = holdkey.col2
4. DELETE tất cả các dòng bị trùng
DELETE t1
FROM t1, holdkey
WHERE t1.col1 = holdkey.col1
AND t1.col2 = holdkey.col2
5. Đổ ngược lại dòng được giữ trong holddups.
INSERT t1 SELECT * FROM holddups
Không có nhận xét nào:
Đăng nhận xét