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

Menghapus baris duplikat (berdasarkan nilai dari beberapa kolom) dari tabel SQL

Contoh SQL FIDDLE

1) Gunakan CTE untuk mendapatkan catatan nilai kode kapal maksimum berdasarkan ARDivisionNo, CustomerNountuk setiap Pelanggan

WITH cte AS (
  SELECT*, 
     row_number() OVER(PARTITION BY ARDivisionNo, CustomerNo ORDER BY ShipToCode desc) AS [rn]
  FROM t
)
Select * from cte WHERE [rn] = 1

2) Untuk Menghapus catatan, gunakan Hapus kueri alih-alih Pilih dan ubah Where Clause menjadi rn> 1. Contoh SQL FIDDLE

WITH cte AS (
  SELECT*, 
     row_number() OVER(PARTITION BY ARDivisionNo, CustomerNo ORDER BY ShipToCode desc) AS [rn]
  FROM t
)
Delete from cte WHERE [rn] > 1;

select * from t;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 Cara untuk Melihat apakah Fitur Usang Masih Digunakan di Instance SQL Server

  2. Perbaiki "nama profil tidak valid" Saat Mengirim Email dari SQL Server

  3. Mengembalikan Daftar Tabel &Tampilan di SQL Server menggunakan T-SQL (sp_tables)

  4. Bagaimana Fungsi NCHAR() Bekerja di SQL Server (T-SQL)

  5. SQL Server:Kiat Berguna untuk Pemula