Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memadam Rekod Pendua dalam Pelayan SQL Berdasarkan Medan Tertentu Menggunakan Pertanyaan Tunggal?

Bagaimana untuk Memadam Rekod Pendua dalam Pelayan SQL Berdasarkan Medan Tertentu Menggunakan Pertanyaan Tunggal?

Mary-Kate Olsen
Lepaskan: 2025-01-12 12:06:44
asal
503 orang telah melayarinya

How to Delete Duplicate Records in SQL Server Based on a Specific Field Using a Single Query?

Padamkan rekod pendua dalam SQL Server berdasarkan medan tertentu

Andaikan terdapat jadual bernama "Pekerja" yang mengandungi lajur bernama "Nama Pekerja". Tugasnya adalah untuk memadam rekod berlebihan berdasarkan medan "EmployeeName" dan mendapatkan data berikut:

EmployeeName
Anand
Anil
Dipak

Bagaimanakah saya boleh mencapai ini dengan satu pertanyaan menggunakan TSQL dalam SQL Server?

Penyelesaian menggunakan fungsi tetingkap:

Untuk menyelesaikan masalah ini, fungsi tetingkap adalah kaedah yang boleh dilaksanakan. Fungsi tetingkap membenarkan anda melakukan operasi pada set baris dalam partition yang ditakrifkan oleh klausa OVER. Dalam contoh ini, partition ditakrifkan oleh lajur "EmployeeName".

Pertanyaan berikut secara berkesan mengenal pasti dan mengalih keluar rekod pendua berdasarkan medan "Nama Pekerja":

<code class="language-sql">delete x from (
select *, rn=row_number() over (partition by EmployeeName order by empId)
from Employee
) x
where rn > 1;</code>
Salin selepas log masuk

Penjelasan:

  • Fungsi tetingkap row_number() digunakan untuk menetapkan kedudukan angka - bermula dari 1 - kepada setiap rekod dalam setiap partition (ditakrifkan oleh EmployeeName).
  • Pernyataan padam kemudian menyasarkan baris dengan rn lebih besar daripada 1, yang merupakan pendua.

Lihat rekod yang dipadam:

Untuk pratonton rekod yang akan dipadamkan tanpa benar-benar melaksanakan kenyataan padam, gunakan pertanyaan pilih berikut:

<code class="language-sql">select *
from (
select *, rn=row_number() over (partition by EmployeeName order by empId)
from Employee
) x
where rn > 1;</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Memadam Rekod Pendua dalam Pelayan SQL Berdasarkan Medan Tertentu Menggunakan Pertanyaan Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan