Giả sử có một danh mục, tên là duy nhất, có cột mã được phép trùng do không ràng buộc dữ liệu. Bây giờ muốn xoá tất cả những mã bị trùng, chỉ giữ lại một trong bất kỳ những mã trùng đó.
CREATE TABLE Test (Col1 CHAR(10), Col2 CHAR(10))
--Nhập dữ liệu
INSERT INTO Test(Col1, COl2) VALUES('001', 'Item 1')
INSERT INTO Test(Col1, COl2) VALUES('002', 'Item 2')
INSERT INTO Test(Col1, COl2) VALUES('001', 'Item 3')
INSERT INTO Test(Col1, COl2) VALUES('002', 'Item 4')
--Kiểm tra dữ liệu
SELECT * FROM Test
;WITH CTE
AS(
SELECT Col1, ROW_NUMBER() OVER(PARTITION BY Col1 ORDER BY Col1) AS Count
FROM Test
)
DELETE FROM CTE
WHERE Count > 1SELECT * FROM Test
DROP Table dbo.Test
Tham khảo http://blog.sqlauthority.com/2009/06/23/sql-server-2005-2008-delete-duplicate-rows/
Tham khảo thêm
Trả lờiXóahttp://forums.congdongcviet.com/showthread.php?t=47604