Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana saya bisa menghapus baris duplikat?

Dengan asumsi tidak ada nol, Anda GROUP BY kolom unik, dan SELECT MIN (or MAX) RowId sebagai baris yang harus disimpan. Kemudian, hapus saja semua yang tidak memiliki id baris:

DELETE FROM MyTable
LEFT OUTER JOIN (
   SELECT MIN(RowId) as RowId, Col1, Col2, Col3 
   FROM MyTable 
   GROUP BY Col1, Col2, Col3
) as KeepRows ON
   MyTable.RowId = KeepRows.RowId
WHERE
   KeepRows.RowId IS NULL

Jika Anda memiliki GUID alih-alih bilangan bulat, Anda dapat mengganti

MIN(RowId)

dengan

CONVERT(uniqueidentifier, MIN(CONVERT(char(36), MyGuidColumn)))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cuplikan Basis Data SQL Server -2

  2. Cara Instal sqlcmd &bcp di SUSE

  3. Berapa jumlah maksimum karakter yang akan ditampung nvarchar(MAX)?

  4. Parsing string yang dipisahkan koma untuk membuat IN Daftar string dalam klausa Where

  5. Bagaimana cara terhubung ke mssql menggunakan pdo melalui PHP dan Linux?