Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL:Xóa các bản ghi trùng lặp trong SQL Server

Đây là một lý do tại sao bạn nên có một khóa chính trên bàn. Phiên bản SQL Server nào? Đối với SQL Server 2005 trở lên:

;WITH r AS
(
    SELECT col1, col2, col3, -- whatever columns make a "unique" row
    rn = ROW_NUMBER() OVER (PARTITION BY col1, col2, col3 ORDER BY col1)
    FROM dbo.SomeTable
)
DELETE r WHERE rn > 1;

Sau đó, bạn không phải thực hiện lại việc này vào ngày mai, ngày hôm sau và ngày hôm sau, hãy khai báo khóa chính trên bảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:Có công cụ nào để theo dõi các truy vấn, như Hồ sơ cho máy chủ sql không?

  2. SQL Server Internals:Các toán tử có vấn đề Pt. II - Băm

  3. sumProduct trong sql

  4. Những điều bạn nên biết với NOCHECK khi kích hoạt ràng buộc CHECK trong SQL Server

  5. Ngăn chặn việc chèn các phạm vi ngày chồng chéo bằng cách sử dụng trình kích hoạt SQL